fork download
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. int main ()
  6. {
  7. string n;
  8. cin>>n;
  9. int len = n.length();
  10. int vt=-1;
  11. for (int i=len-1; i>0; i--)
  12. {
  13. int nit1=n[i-1]-'0';
  14. int ni=n[i]-'0';
  15. if (nit1<ni)
  16. {
  17. vt=i-1;
  18. break;
  19. }
  20. }
  21. if (vt==-1) cout<<"0";
  22. else
  23. {
  24. for (int i=len-1; i>=0; i--)
  25. {
  26. int ni=n[i]-'0';
  27. int nvt=n[vt]-'0';
  28. if (ni>nvt)
  29. {
  30. int tg=ni;
  31. n[i]=nvt+'0';
  32. n[vt]=tg+'0';
  33. break;
  34. }
  35. }
  36. for (int i=vt+1; i<len; i++)
  37. {
  38. for (int j=vt+1; j<len-1; j++)
  39. {
  40. int nj=n[j]-'0';
  41. int njc1=n[j+1]-'0';
  42. if (nj>njc1)
  43. {
  44. int tg=nj;
  45. n[j]=njc1+'0';
  46. n[j+1]=tg+'0';
  47. }
  48. }
  49. }
  50. for (int i=0; i<len; i++) cout<<n[i];
  51. }
  52. return 0;
  53. }
Success #stdin #stdout 0s 15240KB
stdin
27711
stdout
71127