又被有哪位路过的大佬帮我这个蒟蒻找找Hack数据啊【悬1关】 评测详情
#include <bits/stdc++.h>
using namespace std;
#define int long long
int f2(int a , int b){
if(a < 0) a = 0;
if(a == 0) return 0;
int ret = 1;
while(b--){
ret *= a;
}
return ret;
}
int f(int x){
if(x < 10) return 0;
string sx = to_string(x);
string sx2 = sx.substr(1);
int x2 = stoll(sx2);
int fst = sx[0] - '0';
int ans = 0;
for(int i = 1;i + 1 < sx.size();i++){
ans += min((long long)(sx[i] - '0') , fst - 1) * f2(fst , sx.size() - i - 1);
}
ans++;
for(int i = 1;i < sx2.size();i++){
for(int j = 0;j <= 9;j++){
ans += f2(j , i);
}
}
for(int i = 1;i < fst;i++){
ans += f2(i , sx2.size());
}
return ans;
}
signed main(){
int l , r;
cin >> l >> r;
cout << f(r) - f(l - 1) << "\n";
return 0;
}