fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3.  
  4. pair<int,vector<int>>func(string s) {
  5. int n=s.size();
  6. vector<int>arr(n);
  7. unordered_map<int,int>mp;
  8.  
  9. for(int i=0;i<n;i++) {
  10. arr[i]=s[i]-'0';
  11. mp[arr[i]]=i;
  12. }
  13.  
  14. int minOperation=INT_MAX;
  15. vector<int>ans;
  16. for(int i=0;i<=n;i++) {
  17. unordered_map<int,int>left;
  18. bool left_part=true;
  19. bool right_part=true;
  20.  
  21. for(int j=0;j<i;j++) {
  22. left[arr[j]]=1;
  23. }
  24. for(auto&p:left) {
  25. int digit=p.first;
  26. if (mp[digit]>=i) {
  27. left_part=false;
  28. break;
  29. }
  30. }
  31. for(int j=i+1;j<n;j++) {
  32. if(arr[j]<arr[j-1]) {
  33. right_part=false;
  34. break;
  35. }
  36. }
  37.  
  38. if(left_part && right_part) {
  39. minOperation=left.size();
  40. break;
  41. }
  42. }
  43. return {minOperation,ans};
  44. }
  45.  
  46. int main() {
  47. string input;
  48. cin>>input;
  49. auto ans=func(input);
  50. cout<<ans.first<<"[";
  51. for(int i=0;i<ans.second.size();i++) {
  52. cout<<ans.second[i];
  53. }
  54. cout<<"]"<<endl;
  55. return 0;
  56. }
Success #stdin #stdout 0s 5316KB
stdin
332
stdout
1[]