QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#721965#9167. Coprime ArraymaxiaomengAC ✓0ms3704kbC++14793b2024-11-07 17:19:182024-11-07 17:19:18

Judging History

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

  • [2024-11-07 17:19:18]
  • 评测
  • 测评结果:AC
  • 用时:0ms
  • 内存:3704kb
  • [2024-11-07 17:19:18]
  • 提交

answer

#include<bits/stdc++.h>
#define int long long
#define endl '\n'
using namespace std;
int s,x,z=1,w;
vector<int>v,p;
inline int fp(int x,int y,int mod){ // 快速幂(fp(0,0)=1)
	x%=mod;
	int r=1;
	while(y){
		if(y&1)r=r*x%mod;
		x=x*x%mod;
		y>>=1;
	}
	return r;
}
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
	cin>>s>>x;
	if(__gcd(s,x)==1)return cout<<1<<'\n'<<s<<'\n',0;
	if(!(x&1)&&(s&1))v.push_back(1),--s;
	for(int i=2;i*i<=x;i++){
		if(x%i==0){
			p.push_back(i);
			z*=i;
			while(x%i==0)x/=i;
		}
	}
	for(auto i:p){
		int m=z/i;
		int g=fp(m,i-2,i);
		int k=1;
		if(s%i==1)k=2;
		w=(w+k*g%z*m%z)%z;
	}
	v.push_back(w);
	v.push_back(s-w);
	cout<<v.size()<<'\n';
	for(auto i:v)cout<<i<<' ';
    return 0;
}


这程序好像有点Bug,我给组数据试试?

詳細信息

Test #1:

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

input:

9 6

output:

3
1 1 7 

result:

ok Correct

Test #2:

score: 0
Accepted
time: 0ms
memory: 3576kb

input:

14 34

output:

2
1 13 

result:

ok Correct

Test #3:

score: 0
Accepted
time: 0ms
memory: 3648kb

input:

1000000000 223092870

output:

2
3233231 996766769 

result:

ok Correct

Test #4:

score: 0
Accepted
time: 0ms
memory: 3636kb

input:

2 1000000000

output:

2
1 1 

result:

ok Correct

Test #5:

score: 0
Accepted
time: 0ms
memory: 3648kb

input:

649557664 933437700

output:

2
83981 649473683 

result:

ok Correct

Test #6:

score: 0
Accepted
time: 0ms
memory: 3576kb

input:

33396678 777360870

output:

2
1 33396677 

result:

ok Correct

Test #7:

score: 0
Accepted
time: 0ms
memory: 3640kb

input:

48205845 903124530

output:

3
1 18811 48187033 

result:

ok Correct

Test #8:

score: 0
Accepted
time: 0ms
memory: 3584kb

input:

251037078 505905400

output:

2
1 251037077 

result:

ok Correct

Test #9:

score: 0
Accepted
time: 0ms
memory: 3636kb

input:

30022920 172746860

output:

2
1 30022919 

result:

ok Correct

Test #10:

score: 0
Accepted
time: 0ms
memory: 3640kb

input:

63639298 808058790

output:

2
248711 63390587 

result:

ok Correct

Test #11:

score: 0
Accepted
time: 0ms
memory: 3652kb

input:

76579017 362768406

output:

3
1 1 76579015 

result:

ok Correct

Test #12:

score: 0
Accepted
time: 0ms
memory: 3628kb

input:

40423669 121437778

output:

3
1 1 40423667 

result:

ok Correct

Test #13:

score: 0
Accepted
time: 0ms
memory: 3640kb

input:

449277309 720915195

output:

2
1 449277308 

result:

ok Correct

Test #14:

score: 0
Accepted
time: 0ms
memory: 3704kb

input:

81665969 919836918

output:

3
1 2003 81663965 

result:

ok Correct

Test #15:

score: 0
Accepted
time: 0ms
memory: 3628kb

input:

470578680 280387800

output:

2
1 470578679 

result:

ok Correct

Test #16:

score: 0
Accepted
time: 0ms
memory: 3644kb

input:

58450340 803305503

output:

2
1 58450339 

result:

ok Correct

Test #17:

score: 0
Accepted
time: 0ms
memory: 3636kb

input:

125896113 323676210

output:

3
1 59281 125836831 

result:

ok Correct

Test #18:

score: 0
Accepted
time: 0ms
memory: 3576kb

input:

381905348 434752500

output:

2
1 381905347 

result:

ok Correct

Test #19:

score: 0
Accepted
time: 0ms
memory: 3636kb

input:

78916498 653897673

output:

1
78916498

result:

ok Correct

Test #20:

score: 0
Accepted
time: 0ms
memory: 3616kb

input:

35787885 270845190

output:

3
1 1 35787883 

result:

ok Correct

Extra Test:

score: 0
Extra Test Passed