Submission details
Task:Toistot
Sender:Laakeri
Submission time:2025-12-20 15:39:28 +0200
Language:C++ (C++11)
Status:READY
Result:100
Feedback
groupverdictscore
#1ACCEPTED11
#2ACCEPTED21
#3ACCEPTED31
#4ACCEPTED37
Test results
testverdicttimegroup
#1ACCEPTED0.01 s1, 2, 3, 4details
#2ACCEPTED0.01 s2, 3, 4details
#3ACCEPTED0.01 s3, 4details
#4ACCEPTED0.01 s4details
#5ACCEPTED0.01 s1, 2, 3, 4details
#6ACCEPTED0.01 s4details

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
...