fork(3) download
  1. #include <iostream>
  2.  
  3. //https://p...content-available-to-author-only...j.com/problems/AL_30_03/
  4. using namespace std;
  5.  
  6. int main(){
  7. std::ios_base::sync_with_stdio(false);
  8. cin.tie(NULL);
  9. //cout.tie(NULL);
  10.  
  11. unsigned long long liczbacyfr;
  12. while(cin>>liczbacyfr){
  13. unsigned long long pot, ile, stron, i, c=19;
  14. ile=stron=0;
  15. pot=i=1;
  16.  
  17. while(ile<=liczbacyfr && i<c){
  18. ile+=i*9*pot; //ile znakow sumarycznie
  19. stron+=9*pot; //liczba stron sumarycznie
  20. i++;
  21. pot*=10;
  22. //cout<<pot<<" - "<<i-1<<endl;
  23. }
  24.  
  25. if(i<c){ //skompensuj do tylu
  26. unsigned long long roznica=ile-liczbacyfr;
  27. roznica += (i-1 - roznica%(i-1))%(i-1);
  28. cout<<stron - ((roznica)/(i-1))<<'\n';
  29. } else { // c=19 skompensuj do przodu
  30. cout<<stron + ((liczbacyfr - ile)/c)<<'\n'; //189 i*pot
  31.  
  32. }
  33.  
  34. } //while
  35. return 0;
  36. }
Success #stdin #stdout 0.01s 5280KB
stdin
0
13
113
1113
2989
18446744073709551615
stdout
0
11
61
407
1024
1029360799201087510