Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- int a, b;
- int bLen;
- int length(int x) {
- int result = 0;
- while (true) {
- result++;
- x /= 10;
- if (x == 0) {
- break;
- }
- }
- return result;
- }
- int getNthDigit(int x, int n) {
- for (; n > 0; n--) {
- x /= 10;
- }
- return x % 10;
- }
- int calculate(int len, int x, bool equalPrefix, bool first) {
- if (len == -1) {
- return 1;
- }
- int xDigit = getNthDigit(x, len);
- int bDigit = getNthDigit(b, len);
- if (equalPrefix) {
- int result = 0;
- for (int i = first; i <= bDigit && i + xDigit <= 9; i++) {
- result += calculate(len - 1, x, bDigit == i, false);
- }
- return result;
- }
- return (10 - xDigit - first) * calculate(len - 1, x, false, false);
- }
- int main() {
- cin >> a >> b;
- bLen = length(b);
- long long ans = 0;
- for (int x = 1; x <= a; x++) {
- for (int yLen = 1; yLen <= bLen; yLen++) {
- ans += calculate(yLen - 1, x, yLen == bLen, true);
- }
- }
- cout << ans << "\n";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement