QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#271115 | #5301. Modulo Ruins the Legend | arahato | WA | 0ms | 3684kb | C++14 | 836b | 2023-12-01 23:29:41 | 2023-12-01 23:29:42 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
#define int long long
int n,m,s,a,b,x,y;
int gcd(int x,int y){
return x?gcd(y%x,x):y;
}
int exgcd(int a,int b,int &x,int &y){
if(!b) return x=1,y=0,a;
int g;return g=exgcd(b,a%b,y,x),y-=a/b*x,g;
}
auto solve(int a,int b,int c){
int x,y,g;
g=exgcd(a,b,x,y);
if(c%g) return pair<int,int>{-1,-1};
x*=c/g;
x=(x%b+b)%b;
y=(c-a*x)/b;
// cerr<<a<<" "<<b<<" "<<c<<" "<<x<<" "<<y<<endl;
return pair<int,int>{x,y};
}
signed main(){
ios::sync_with_stdio(0);
cin>>n>>m;
for(int i=1,x;i<=n;i++) cin>>x,s=(s+x)%m;
int A=n,B=n*(n+1)/2;
int g=gcd(A,B);
for(int i=0;i<n;i++){
pair<int,int> a=solve(g,m,i-s);
if(a.first==-1) continue;
pair<int,int> b=solve(A,B,(a.first+m*n)*g);
cout<<i<<endl<<b.first<<" "<<b.second<<endl;
break;
}
}
詳細信息
Test #1:
score: 100
Accepted
time: 0ms
memory: 3672kb
input:
6 24 1 1 4 5 1 4
output:
1 15 19
result:
ok ok
Test #2:
score: -100
Wrong Answer
time: 0ms
memory: 3684kb
input:
7 29 1 9 1 9 8 1 0
output:
0 7 49
result:
wrong answer Integer parameter [name=d] equals to 49, violates the range [0, 28]