제출 #1258513

#제출 시각아이디문제언어결과실행 시간메모리
1258513damasenTrol (COCI19_trol)C++20
10 / 50
1 ms328 KiB
#include <bits/stdc++.h>

using namespace std;

inline int find_step (int num){
    if (num < 10) return num;
    int sum = 0;
    while(num > 0){
        sum += num%10;
        num /= 10;
    }
    return find_step(sum);
}

int triangular_sum(int n){
    return (n * (n+1)) / 2;
}

int main(){
    int q;
    cin >> q;
    while(q--){
        long long l, r;
        cin >> l >> r;
        int l_step = find_step(l);
        int r_step = find_step(r);
        long long ans = 0;
        if (r-l+1 <= 9){
            for (int i = 0; i < r-l+1; i++){
                ans += l_step;
                if(l_step < 9) l_step++;
                else if (l_step == 9) l_step = 1;
            }
            cout << ans << '\n';
            continue;
        }
        ans += 45 - triangular_sum(l_step - 1);
        ans += triangular_sum(r_step);
        long long range = r - l + 1;
        range - r_step; range - (10-l_step);
        long long sequence = range / 9;
        ans += sequence * 45;
        cout << ans << '\n';
    }
}
#Verdict Execution timeMemoryGrader output
Fetching results...