fork(1) 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 (k==1&&cyfra[l-1]=='5'&&piatki==1&&cyfra[l-2]=='4') cyfra[l-1]='0',cyfra[l-2]='5',cout<<cyfra<<'\n';
  54. else if (k==1&&cyfra[l-1]=='5'&&piatki==1&&cyfra[l-2]!='4'&&cyfra[l-2]!='9') cyfra[l-1]='5',cyfra[l-2]++,cout<<cyfra<<'\n';
  55. else if (piatki>=k&&cyfra[l-1]<='3') cyfra[l-1]++,cout<<cyfra<<'\n';
  56. else if (piatki+1>=k&&cyfra[l-1]=='4') cyfra[l-1]++,cout<<cyfra<<'\n';
  57. else if (piatki>=k&&cyfra[l-1]<='8'&&cyfra[l-1]>='6') cyfra[l-1]++,cout<<cyfra<<'\n';
  58. else if (roznica>=1&&cyfra[l-1]!='9') cyfra[l-1]++,cout<<cyfra<<'\n';
  59. else if (roznica>=0&&cyfra[l-1]!='9'&&cyfra[l-1]!='5') cyfra[l-1]++,cout<<cyfra<<'\n';
  60. else
  61. {
  62. for(g=l-1;g>=0;g--)
  63. {
  64. roznspada=false,roznrosnie=false;
  65. if(cyfra[g]<='4')
  66. {
  67. cyfra[g]='5',roznica++;
  68. if (roznica>=0) g=-1,cout<<cyfra<<'\n';
  69. }
  70. else if(cyfra[g]>='6')
  71. {
  72. cyfra[g-1]++;
  73. if (cyfra[g-1]=='6') roznica--,roznspada=true;
  74. if (cyfra[g-1]=='5') roznica++,roznrosnie=true;
  75. if (roznica>=0&&wysw==true)
  76. {
  77. if(cyfra[g-1]==':')
  78. {
  79. cyfra[g-1]='0';
  80. cyfra[g-2]++;
  81. if(cyfra[g-2]=='6') roznica--,roznspada=true;
  82. if(cyfra[g-2]=='5') roznica++,roznrosnie=true;
  83. for(int h=2;h<=999;h++)
  84. {
  85. if(cyfra[g-h]==':')
  86. {
  87. cyfra[g-h]='0';
  88. cyfra[g-h-1]++;
  89. if(cyfra[g-h-1]=='6') roznica--,roznspada=true;
  90. if(cyfra[g-h-1]=='5') roznica++,roznrosnie=true;
  91. }
  92. else h=1000;
  93. }
  94. }
  95. cyfra[g]='0';
  96. if(roznspada==false)
  97. {
  98. g=-1;
  99. if(cyfra[0]=='0'||cyfra[0]==':') cout<<"1";
  100. if(cyfra[0]==':') cyfra[0]='0';
  101. if(roznrosnie==true)
  102. {
  103. for(int j=l-1;j>=0;j--)
  104. {
  105. if(cyfra[j]!='5') cyfra[j+1]='0',j=-1;
  106. }
  107. }
  108. cout<<cyfra<<'\n';
  109. wysw=false;
  110. }
  111. }
  112. cyfra[g]='5',roznica++;
  113. roznspada=false,roznrosnie=false;
  114. if (roznica>=0&&wysw==true)
  115. {
  116. if(cyfra[g-1]==':')
  117. {
  118. cyfra[g-1]='0';
  119. cyfra[g-2]++;
  120. if(cyfra[g-2]=='6') roznica--,roznspada=true;
  121. if(cyfra[g-2]=='5') roznica++,roznrosnie=true;
  122. for(int h=2;h<=999;h++)
  123. {
  124. if(cyfra[g-h]==':')
  125. {
  126. cyfra[g-h]='0';
  127. cyfra[g-h-1]++;
  128. if(cyfra[g-h-1]=='6') roznica--,roznspada=true;
  129. if(cyfra[g-h-1]=='5') roznica++,roznrosnie=true;
  130. }
  131. else h=1000;
  132. }
  133. }
  134. if(roznspada==false)
  135. {
  136. g=-1;
  137. if(cyfra[0]=='0'||cyfra[0]==':') cout<<"1";
  138. if(cyfra[0]==':') cyfra[0]='0';
  139. if(roznrosnie==true)
  140. {
  141. for(int j=l-1;j>=0;j--)
  142. {
  143. if(cyfra[j]!='5') cyfra[j+1]='0',j=-1;
  144. }
  145. }
  146. cout<<cyfra<<'\n';
  147. wysw=false;
  148. }
  149. }
  150. }
  151. }
  152. }
  153. }
  154. return 0;
  155. }
Success #stdin #stdout 0s 15240KB
stdin
9999415 1
stdout
9999425