fork download
  1. #include <iostream>
  2. using namespace std;
  3. long long int ggg;
  4. long long int n, x;
  5.  
  6. long long int pages(long long int nd, long long int first)
  7. {
  8. long long int tenpow = 1;
  9. long long int ndig = 0;
  10. long long int t = first;
  11. while(t > 0)
  12. {
  13. t = t/10; // 10
  14. tenpow *= 10;
  15. ndig += 1;
  16. }
  17. long long int sum = 0;
  18.  
  19. long long int last = first - 1 + nd / ndig; // ndig
  20. while(last >= tenpow)
  21. {
  22. sum += tenpow - first;
  23. nd -= (tenpow - first) * ndig;
  24. first = tenpow;
  25. tenpow *= 10;
  26. ndig += 1;
  27. last = first - 1 + nd / ndig; // ndig
  28. }
  29. if(nd % ndig > 0)
  30. {
  31. return -1;
  32. }
  33. return sum + (last - first + 1);
  34. }
  35.  
  36. int main()
  37. {
  38. cin >> ggg;
  39. for(long long int i=0;i<ggg;i++)
  40. {
  41. cin >> n >> x;
  42. cout << pages(n, x) << endl; // n - nd, x - first
  43. }
  44. return 0;
  45. }
Success #stdin #stdout 0s 15232KB
stdin
2
10279999999999990 80000000000000
12 5
stdout
686666666666666
-1