fork(1) download
  1. #include<iostream>
  2. #include<cstring>
  3. using namespace std;
  4.  
  5.  
  6.  
  7. int main()
  8. {
  9.  
  10. string s="";
  11. cin>>s;
  12. int k=0;
  13. bool a[s.length()];
  14.  
  15. for(int i=0;i<s.length();i++)
  16. a[i]=0;
  17.  
  18. char min=s[0];
  19. for(int i=1;i<s.length();i++)
  20. {
  21. if(s[i]<min)
  22. min=s[i];
  23. }
  24. for(int i=1;i<s.length();i++)
  25. {
  26. if(s[i]<min)
  27. min=s[i];
  28. }
  29. int c=0,j=0;
  30. for(int i=0;i<s.length();i++)
  31. {
  32. if(s[i]==min)
  33. {
  34.  
  35. a[i]=1;
  36. c=i;
  37. j++;
  38.  
  39. }
  40. }
  41. int r=0,f=0,e=0;
  42. for(int i=0;i<s.length();i++)
  43. {if(a[i]==1)
  44. while(1)
  45. {
  46. if(a[i]==1)
  47. {r++;
  48. if(r==1)
  49. f=i;
  50. }
  51. else{
  52. e=1;
  53. break;}
  54. i++;
  55. }
  56. if(e==1)
  57. break;
  58. }
  59. if(r>1){
  60. printf("%d\n",f);
  61. return 0;
  62. }
  63.  
  64.  
  65.  
  66. if(j==1){
  67. printf("%d\n",(c-k));
  68.  
  69. return 0;
  70. }
  71. else
  72. {
  73. min='z';
  74. while(1)
  75. {
  76. for(int i=0;i<s.length();i++)
  77. if(a[i]==1)
  78. {
  79.  
  80. a[i]=0;
  81. if(i<=s.length()-2)
  82. {a[i+1]=1;
  83. i++;}
  84. else
  85. a[0]=1;
  86.  
  87.  
  88. }
  89.  
  90. for(int i=0;i<s.length();i++)
  91. { if(a[i]==1)
  92. {
  93. if(s[i]<min)
  94. min=s[i];
  95. }
  96. }
  97.  
  98.  
  99. int c=0,j=0;
  100. for(int i=0;i<s.length();i++)
  101. {
  102. if(a[i]==1)
  103. if(s[i]==min)
  104. {
  105.  
  106. a[i]=1;
  107. if(i==0)
  108. c=s.length()+i;
  109. else
  110. c=i;
  111.  
  112. j++;
  113.  
  114. }
  115. else
  116. a[i]=0;
  117. }
  118. if(j==1){
  119. printf("%d\n",(c-k-1));
  120.  
  121. return 0;}
  122. else
  123. {
  124. min='z';
  125. k++;
  126. continue;
  127. }
  128. }
  129. }
  130. }
  131.  
  132.  
  133.  
Time limit exceeded #stdin #stdout 5s 2680KB
stdin
Standard input is empty
stdout
Standard output is empty