fork(2) download
  1. #include <iostream>
  2. using namespace std;
  3. int g,l,k,piatki,roznica,zera,postep;
  4. string cyfra;
  5. bool wysw=true,roznspada=false,roznrosnie=false;
  6. int main()
  7. {
  8. cin>>cyfra>>k;
  9. piatki=0,zera=0,l=cyfra.length();
  10. if (l+1<=k)
  11. {
  12. for(int c=0;c<=k-1;c++) cout<<"5";
  13. cout<<'\n';
  14. }
  15. else if (l==k)
  16. {
  17. for(int a=0;a<=l-1;a++)
  18. {
  19. if (cyfra[a]<='4')
  20. {
  21. for(int b=0;b<=k-1;b++) cout<<"5";
  22. cout<<'\n';
  23. a=l+1;
  24. }
  25. else if (cyfra[a]>='6')
  26. {
  27. cout<<"1";
  28. for(int d=0;d<=k-1;d++) cout<<"5";
  29. cout<<'\n';
  30. a=l+1;
  31. }
  32. else if (cyfra[a]=='5')
  33. {
  34. piatki++;
  35. if(piatki==l)
  36. {
  37. cout<<"1";
  38. for(int e=0;e<=k-1;e++) cout<<"5";
  39. cout<<'\n';
  40. a=l+1;
  41. }
  42. }
  43. }
  44. }
  45. else
  46. {
  47. for(int f=0;f<=l-1;f++)
  48. {
  49. if(cyfra[f]=='5') piatki++;
  50. }
  51. roznica=piatki-k;
  52. if (l>=2&&roznica==0&&cyfra[l-1]=='5'&&cyfra[l-2]=='4') cyfra[l-1]='0',cyfra[l-2]='5',cout<<cyfra<<'\n';
  53. else if (piatki>=k&&cyfra[l-1]<='3') cyfra[l-1]++,cout<<cyfra<<'\n';
  54. else if (piatki+1>=k&&cyfra[l-1]=='4') cyfra[l-1]++,cout<<cyfra<<'\n';
  55. else if (piatki>=k&&cyfra[l-1]<='8'&&cyfra[l-1]>='6') cyfra[l-1]++,cout<<cyfra<<'\n';
  56. else if (roznica>=1&&cyfra[l-1]!='9') cyfra[l-1]++,cout<<cyfra<<'\n';
  57. else if (roznica>=0&&cyfra[l-1]!='9'&&cyfra[l-1]!='5') cyfra[l-1]++,cout<<cyfra<<'\n';
  58. else
  59. {
  60. for(g=l-1;g>=0;g--)
  61. {
  62. roznspada=false,roznrosnie=false;
  63. if(cyfra[g]<='4')
  64. {
  65. cyfra[g]='5',roznica++;
  66. if (roznica>=0) g=-1,cout<<cyfra<<'\n';
  67. }
  68. else if(cyfra[g]>='6')
  69. {
  70. cyfra[g-1]++;
  71. if (cyfra[g-1]=='6') roznica--,roznspada=true;
  72. if (cyfra[g-1]=='5') roznica++,roznrosnie=true;
  73. if (roznica>=0&&wysw==true)
  74. {
  75. if(cyfra[g-1]==':')
  76. {
  77. cyfra[g-1]='0';
  78. cyfra[g-2]++;
  79. if(cyfra[g-2]=='6') roznica--,roznspada=true;
  80. if(cyfra[g-2]=='5') roznica++,roznrosnie=true;
  81. for(int h=2;h<=999;h++)
  82. {
  83. if(cyfra[g-h]==':')
  84. {
  85. cyfra[g-h]='0';
  86. cyfra[g-h-1]++;
  87. if(cyfra[g-h-1]=='6') roznica--,roznspada=true;
  88. if(cyfra[g-h-1]=='5') roznica++,roznrosnie=true;
  89. }
  90. else h=1000;
  91. }
  92. }
  93. cyfra[g]='0';
  94. if(roznspada==false)
  95. {
  96. g=-1;
  97. if(cyfra[0]=='0'||cyfra[0]==':') cout<<"1";
  98. if(cyfra[0]==':') cyfra[0]='0';
  99. if(roznrosnie==true)
  100. {
  101. for(int j=l-1;j>=0;j--)
  102. {
  103. if(cyfra[j]!='5') cyfra[j+1]='0',j=-1;
  104. }
  105. }
  106. cout<<cyfra<<'\n';
  107. wysw=false;
  108. }
  109. }
  110. cyfra[g]='5',roznica++;
  111. roznspada=false,roznrosnie=false;
  112. if (roznica>=0&&wysw==true)
  113. {
  114. if(cyfra[g-1]==':')
  115. {
  116. cyfra[g-1]='0';
  117. cyfra[g-2]++;
  118. if(cyfra[g-2]=='6') roznica--,roznspada=true;
  119. if(cyfra[g-2]=='5') roznica++,roznrosnie=true;
  120. for(int h=2;h<=999;h++)
  121. {
  122. if(cyfra[g-h]==':')
  123. {
  124. cyfra[g-h]='0';
  125. cyfra[g-h-1]++;
  126. if(cyfra[g-h-1]=='6') roznica--,roznspada=true;
  127. if(cyfra[g-h-1]=='5') roznica++,roznrosnie=true;
  128. }
  129. else h=1000;
  130. }
  131. }
  132. if(roznspada==false)
  133. {
  134. g=-1;
  135. if(cyfra[0]=='0'||cyfra[0]==':') cout<<"1";
  136. if(cyfra[0]==':') cyfra[0]='0';
  137. if(roznrosnie==true)
  138. {
  139. for(int j=l-1;j>=0;j--)
  140. {
  141. if(cyfra[j]!='5') cyfra[j+1]='0',j=-1;
  142. }
  143. }
  144. cout<<cyfra<<'\n';
  145. wysw=false;
  146. }
  147. }
  148. }
  149. }
  150. }
  151. }
  152. return 0;
  153. }
Success #stdin #stdout 0s 15232KB
stdin
555499955 5
stdout
555500005