fork download
  1. #include<iostream>
  2. #include<string>
  3. #include <algorithm>
  4. #include <locale>
  5. using namespace std;
  6. int main(){
  7. string a;
  8. int t;
  9. cin>>t;
  10. for(int i=0;i<t;i++)
  11. {cin>> a;
  12. char f,s;
  13. f=a[0] ;
  14. string b=a;
  15.  
  16. int min=0;
  17. sort(b.begin(),b.end());
  18. string str=a;
  19. sort(str.begin(),str.end());
  20.  
  21. for(int k=0;k<b.size();k++)
  22. {if(f!=b[k] && str[k]!=a[k])
  23. {min=k ; f=a[k]; for(int ss=min;ss<b.size();ss++)if(f!=b[ss]){min=ss; break;}
  24. break;
  25. }
  26. }
  27.  
  28. b=b.substr(min);
  29. /*for(int k=0;k<b.size();k++)
  30. {if(b[k]==f)
  31. b=b.substr(1);
  32. }*/
  33. //sort(b.begin(),b.end());
  34. s=b[0];
  35. for(int k=0;k<b.size();k++)
  36. {if(min!=0)
  37. if(a[min-1]!=b[k] )
  38. {s=b[k]; break;}
  39.  
  40. }
  41.  
  42. for(int k=0;k<a.size();k++)
  43. {if(f>s )
  44. { break;
  45. }else
  46. if(f<s)
  47. f=a[k];
  48.  
  49. }
  50.  
  51. //cout<<b<<endl<<"F=" <<f<<" S="<<s<<endl;
  52. //continue;
  53.  
  54.  
  55. //s=b[0];
  56. /*for(int j=0;j<a.size();j++)
  57. {if(f==s)
  58. s=a[j];
  59. if(f!=s)
  60. break;}
  61. */
  62. //a[0]=s;
  63.  
  64. for(int i=0;i<a.size();i++)
  65. {if(a[i]==f)
  66. {a[i]=s; continue;}
  67. if(a[i]==s)
  68. a[i]=f;
  69.  
  70.  
  71. }
  72.  
  73.  
  74. cout<<a<<endl;
  75.  
  76. }
  77.  
  78. return 0;
  79. }
Success #stdin #stdout 0s 3476KB
stdin
1
defa
stdout
aefd