| Task: | Toistot |
| Sender: | Laakeri |
| Submission time: | 2025-12-20 15:39:28 +0200 |
| Language: | C++ (C++11) |
| Status: | READY |
| Result: | 100 |
| group | verdict | score |
|---|---|---|
| #1 | ACCEPTED | 11 |
| #2 | ACCEPTED | 21 |
| #3 | ACCEPTED | 31 |
| #4 | ACCEPTED | 37 |
| test | verdict | time | group | |
|---|---|---|---|---|
| #1 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
| #2 | ACCEPTED | 0.01 s | 2, 3, 4 | details |
| #3 | ACCEPTED | 0.01 s | 3, 4 | details |
| #4 | ACCEPTED | 0.01 s | 4 | details |
| #5 | ACCEPTED | 0.01 s | 1, 2, 3, 4 | details |
| #6 | ACCEPTED | 0.01 s | 4 | details |
Code
#include <bits/stdc++.h>
#define F first
#define S second
#define X real()
#define Y imag()
using namespace std;
typedef long double ld;
typedef long long ll;
ll tp(ll x){
ll r=1;
for (ll i=0;i<x;i++){
r*=(ll)10;
}
return r;
}
ll rupdiv(ll a, ll b){
if (a%b){
return a/b+1ll;
} else {
return a/b;
}
}
void solve(){
ll a,b;
cin>>a>>b;
ll ans=0;
for (ll len=1;len<=18;len++){
vector<ll> lans(20);
for (ll rlen=1;rlen<len;rlen++){
if (len%rlen!=0) continue;
for (ll rlen2=1;rlen2<rlen;rlen2++){
if (rlen%rlen2==0){
lans[rlen]-=lans[rlen2];
}
}
ll rs=len/rlen;
ll f=1;
for (ll i=1;i<rs;i++){
f *= tp(rlen);
f += 1ll;
}
ll mi=tp(rlen-1ll);
ll ma=tp(rlen)-1ll;
mi=max(mi, rupdiv(a, f));
ma=min(ma, b/f);
if (mi<=ma){
lans[rlen]+=(ma-mi+1ll);
}
ans += lans[rlen];
//cout<<f<<" "<<mi<<" "<<ma<<endl;
//cout<<len<<" "<<rlen<<" "<<lans[rlen]<<endl;
}
}
cout<<ans<<endl;
}
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
int t;
cin>>t;
for (int tc=0;tc<t;tc++){
solve();
}
}Test details
Test 1
Group: 1, 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 633 906 727 914 585 884 750 792 ... |
| correct output |
|---|
| 3 2 2 1 0 ... |
| user output |
|---|
| 3 2 2 1 0 ... |
Test 2
Group: 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 647761 927345 744364 840268 598715 905836 767448 810881 ... |
| correct output |
|---|
| 303 105 333 48 95 ... |
| user output |
|---|
| 303 105 333 48 95 ... |
Test 3
Group: 3, 4
Verdict: ACCEPTED
| input |
|---|
| 1000 663307073 949601845 762227828 860434499 613084013 927576203 785866095 830342436 ... |
| correct output |
|---|
| 286 98 314 44 89 ... |
| user output |
|---|
| 286 98 314 44 89 ... |
Test 4
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 1000 818435896335669158 98300938101... |
| correct output |
|---|
| 164737893 96015818 103821980 402263734 52636276 ... |
| user output |
|---|
| 164737893 96015818 103821980 402263734 52636276 ... |
Test 5
Group: 1, 2, 3, 4
Verdict: ACCEPTED
| input |
|---|
| 990 1 1 1 2 1 3 1 4 ... |
| correct output |
|---|
| 0 0 0 0 0 ... |
| user output |
|---|
| 0 0 0 0 0 ... |
Test 6
Group: 4
Verdict: ACCEPTED
| input |
|---|
| 961 1 1000000000000000000 1 999999999999999999 1 999999999999999998 1 999999999999999997 ... |
| correct output |
|---|
| 1001000097 1001000097 1001000096 1001000096 1001000096 ... |
| user output |
|---|
| 1001000097 1001000097 1001000096 1001000096 1001000096 ... |
