Guest User

Untitled

a guest
Feb 21st, 2015
274
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. #include<iostream>
  2. using namespace std;
  3. int digitSum(long long x)
  4. {
  5. int ans = 0;
  6. while (x > 0)
  7. {
  8. ans += x % 10;
  9. x /= 10;
  10. }
  11. return ans;
  12. }
  13. long long solve(long long l, long long r)
  14. {
  15. if (r - l <= 20)
  16. {
  17. long long ans = 0;
  18. for (long long i = l; i <= r; i++)
  19. {
  20. ans += digitSum(i);
  21. }
  22. return ans;
  23. }
  24. if (l % 10 != 0)
  25. {
  26. return digitSum(l) + solve(l + 1, r);
  27. }
  28. if (r % 10 != 9)
  29. {
  30. return digitSum(r) + solve(l, r - 1);
  31. }
  32. return solve(l / 10, r / 10) * 10 + (long long)45LL * ( r / 10 - l / 10 + 1);
  33. }
  34. int main()
  35. {
  36. long long l, r;
  37. cin >> l >> r;
  38. cout << solve(l, r) << endl;
  39. }
Advertisement
Add Comment
Please, Sign In to add comment