fork download
  1. #include <bits/stdc++.h>
  2.  
  3. #define FOR(i, a, b) for(int i = a; i <= b; i++)
  4. #define ll long long
  5.  
  6. using namespace std;
  7.  
  8. ll p, delta, sigma, Pow[20];
  9.  
  10. void init()
  11. {
  12. Pow[0] = 1;
  13. FOR(i, 1, 18) Pow[i] = Pow[i - 1] * 10LL;
  14. }
  15.  
  16. void nhap()
  17. {
  18. cin >> p >> delta >> sigma;
  19. }
  20.  
  21. void giai()
  22. {
  23. string s = to_string(p);
  24. int cursz = s.size();
  25. ll curnum = p;
  26.  
  27. if(sigma <= cursz)
  28. {
  29. FOR(i, 0, sigma - 1) cout << s[i];
  30. return;
  31. }
  32.  
  33. sigma -= cursz;
  34.  
  35. while(true)
  36. {
  37. ll nxt = Pow[cursz] - 1;
  38. ll k = (nxt - curnum) / delta;
  39.  
  40. if(cursz * k < sigma)
  41. {
  42. sigma -= cursz * k;
  43. cursz++;
  44. curnum += k * delta;
  45. }
  46. else
  47. {
  48. ll d = sigma / cursz;
  49. ll cur = curnum + d * delta;
  50.  
  51. if(sigma % cursz == 0)
  52. {
  53. cout << cur;
  54. break;
  55. }
  56. else
  57. {
  58. int len = sigma % cursz;
  59. cur += delta;
  60. string ans = to_string(cur);
  61. FOR(i, 0, len - 1) cout << ans[i];
  62. break;
  63. }
  64. }
  65. }
  66. }
  67.  
  68. int main()
  69. {
  70. ios_base::sync_with_stdio(0);
  71. cin.tie(0); cout.tie(0);
  72.  
  73. #define name "digits"
  74.  
  75. if(fopen(name".inp", "r"))
  76. {
  77. freopen(name".inp", "r", stdin);
  78. freopen(name".out", "w", stdout);
  79. }
  80.  
  81. nhap();
  82. init();
  83. giai();
  84.  
  85. return 0;
  86. }
Success #stdin #stdout 0.01s 5292KB
stdin
Standard input is empty
stdout
Standard output is empty