Advertisement
Guest User

Untitled

a guest
Feb 7th, 2016
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.17 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. #define pb push_back
  3. #define mp make_pair
  4. #define x first
  5. #define y second
  6. using namespace std;
  7. typedef long long ll;
  8. int main()
  9. {
  10. freopen("encryption.in", "r", stdin);
  11. freopen("encryption.out", "w", stdout);
  12. ll n, m, l, r, l1, r1, vl, an, ps, kl, kt;
  13. cin >> l >> r;
  14. kl = 1;
  15. vl = 9;
  16. an = 0;
  17. ps = 0;
  18. while (ps + kl * vl <= l - 1)
  19. {
  20. an += vl;
  21. ps += kl * vl;
  22. vl *= ll(10);
  23. kl++;
  24. }
  25.  
  26. //cout << ps << endl;
  27. if (l < 10)
  28. an = l;
  29. else if (ps == l - 1)
  30. an++;
  31. else
  32. {
  33. kt = ll(l - ps - 2) / kl + 1;
  34. ps += kt * kl + 1;
  35. an += kt + 1;
  36. }
  37.  
  38. l1 = an;
  39.  
  40.  
  41. kl = 1;
  42. vl = 9;
  43. an = 0;
  44. ps = 0;
  45. while (ps + kl * vl <= r)
  46. {
  47. an += vl;
  48. ps += kl * vl;
  49. vl *= ll(10);
  50. kl++;
  51. }
  52.  
  53. if (r < 10)
  54. an = r;
  55. else if (ps != r)
  56. {
  57. kt = ll(r - ps) / kl;
  58. ps += kt * kl;
  59. an += kt;
  60. }
  61.  
  62. r1 = an;
  63. if (l1 > r1)
  64. cout << 0 << endl;
  65. else
  66. cout << r1 - l1 + 1 << endl;
  67. return 0;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement