Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- using namespace std;
- int digitSum(long long x)
- {
- int ans = 0;
- while (x > 0)
- {
- ans += x % 10;
- x /= 10;
- }
- return ans;
- }
- long long solve(long long l, long long r)
- {
- if (r - l <= 20)
- {
- long long ans = 0;
- for (long long i = l; i <= r; i++)
- {
- ans += digitSum(i);
- }
- return ans;
- }
- if (l % 10 != 0)
- {
- return digitSum(l) + solve(l + 1, r);
- }
- if (r % 10 != 9)
- {
- return digitSum(r) + solve(l, r - 1);
- }
- return solve(l / 10, r / 10) * 10 + (long long)45LL * ( r / 10 - l / 10 + 1);
- }
- int main()
- {
- long long l, r;
- cin >> l >> r;
- cout << solve(l, r) << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment