#include <bits/stdc++.h>
#define int long long
using namespace std;
int query(int n){
int res=0;
while (n>0){
res+=n%10;
n/=10;
}
if (res>=10){
return query(res);
}
return res;
}
int convert(int n){
int v=n%9;
if (v==0){
return 9;
}
return v;
}
int pre;
void solve(){
int l,r;
cin >> l >> r;
int res=0;
if (r-l+1<=20){
for (int i=l;i<=r;i++){
res+=query(i);
}
cout << res << "\n";
return;
}
while (l%10!=1){
res+=query(l);
l++;
}
while (r%10!=0){
res+=query(r);
r--;
}
// cout << l << " " << r << "\n";
int sl=(r-l+1)/10;
res+=sl*pre;
int sta=(l-1)/10+1;
int sta1=(r-1)/10+1;
int l1=1;
int r1=sl;
if (sl<=20){
// cout << res << " ";
for (int i=sta;i<=sta1;i++){
// cout << i << " " << convert(i) << "\n";
res+=convert(i);
}
cout << res << "\n";
// cout << "ok" << "\n";
return;
}
while (sta%9!=1){
res+=convert(sta);
sta++;
l1++;
}
while (sta1%9!=0){
res+=convert(sta1);
sta1--;
r1--;
}
res+=(r1-l1+1)/10*pre;
cout << res << "\n";
}
signed main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
int t;
cin >> t;
for (int i=1;i<=9;i++){
pre+=i;
}
while (t--){
solve();
}
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |