QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#744172#9597. Grade 2xdz_#WA 20ms3632kbC++201.3kb2024-11-13 21:03:312024-11-13 21:03:31

Judging History

你现在查看的是最新测评结果

  • [2024-11-13 21:03:31]
  • 评测
  • 测评结果:WA
  • 用时:20ms
  • 内存:3632kb
  • [2024-11-13 21:03:31]
  • 提交

answer

#include<bits/stdc++.h>
using namespace std;
#define int long long
#define fi first
#define se second

int gcd(int a,int b){
	return b ? gcd(b,a % b) : a;
}

void solve(){
	int x,n;
	cin >>x>>n;
	int zz = x;
	for(int i = 2;i <= x + 10;i ++){
		int z = (i * x) ^ x;
		int z1 = gcd(z,x);
		if(z1 == x){
			x = i;
			break;
		}
	}
	vector<int> s(x + 1);
	for(int i = 1;i <= x;i ++){
		int z = (i * zz) ^ zz;
		int z1 = gcd(z,zz);
		if(z1 == 1){
			s[i] = s[i - 1] + 1;
		}
		else s[i] = s[i - 1];
	}
	for(int i = 1;i <= n;i ++){
		int l,r;
		cin >>l>>r;
		int sum = 0;
		if(l == r){
			l = (l % (x));
			if(l == 0)cout<<s[(x)] - s[x - 1]<<'\n';
			else cout<<s[l] - s[l - 1]<<'\n';
			continue;
		}
		if(l % (x) == 0){
			l ++;
			sum += s[x] - s[x - 1];
		}
		if(r <= l + ((x) - (l % (x)))){
			if(r % (x) != 0)cout<<s[r % (x)] - s[(l % (x)) - 1]<<'\n';
			else cout<<s[x] - s[(l % (x)) - 1]<<'\n';
			continue;
		}
		int z = l % (x);
		int z1 = r % (x);
		r -= r % (x);
		l += ((x) - (l % (x)));
		sum = ((r - l) / (x)) * s[x];
		sum += s[(x)] - s[z - 1];
		sum += s[z1] - s[0];
		cout<<sum<<'\n';
	}
}

signed main(){
	ios::sync_with_stdio(0);
	cin.tie(0);
	cout.tie(0);
	int T;
	T = 1;
	while(T --){
		solve();
	}
} 

詳細信息

Test #1:

score: 100
Accepted
time: 0ms
memory: 3480kb

input:

15 2
1 4
11 4514

output:

2
2252

result:

ok 2 lines

Test #2:

score: 0
Accepted
time: 18ms
memory: 3552kb

input:

500696 100000
110442401300 646889080214
337192 670162015551
508011001649 508011014425
94418501628 94418501634
824168677375 824168677376
732815842309 795402573302
353241304050 846773277757
622033633276 622033633284
760381702139 760381702143
207714 795408271057
382792 952061527685
686173 331215904334
...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 100000 lines

Test #3:

score: 0
Accepted
time: 16ms
memory: 3532kb

input:

465262 100000
119442423888 249533375982
528365238401 528365275157
654839906300 654839906303
135820863700 135820967840
336231 918143221477
568175915485 568176067832
993015103483 993015103488
951474 444595379179
298623434750 298623434751
257961 410491919396
996297715292 996297994388
17765498878 177654...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 100000 lines

Test #4:

score: 0
Accepted
time: 14ms
memory: 3612kb

input:

599394 100000
683408 868635908987
347999512025 347999739145
740945 377178907084
399211757563 399211757568
766968 548821086083
630762 702128377806
756554924031 756554924036
904713771313 904714518208
17026878789 17027129255
11601638470 206412869961
253365321722 253365321730
785476956554 785477402085
2...

output:

0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
...

result:

ok 100000 lines

Test #5:

score: -100
Wrong Answer
time: 20ms
memory: 3632kb

input:

255255 100000
693776785134 693776920782
174578728959 174578728960
109045569231 631173362385
470661333171 470661439492
401883 183360880923
436203696728 436203931780
165055 339075075373
640081 299360395352
864237441330 864237509663
730335563579 730335652091
194265481215 194265481219
40664920117 406649...

output:

48291
1
185923734469
37861
65292569108
83696
120740696845
106598584435
24331
31531
1
13599
28047
259941767307
52458927165
3
46128244849
4
175172489320
3
47772
257896064176
327099648974
3
22478
54792
46334735154
45620596151
94458239051
55144
1
152102534743
0
109603486841
91139743526
144745947985
2
19...

result:

wrong answer 1st lines differ - expected: '48406', found: '48291'