QOJ.ac
QOJ
ID | Problem | Submitter | Result | Time | Memory | Language | File size | Submit time | Judge time |
---|---|---|---|---|---|---|---|---|---|
#627192 | #5301. Modulo Ruins the Legend | qilou | WA | 1ms | 5752kb | C++23 | 2.2kb | 2024-10-10 15:10:20 | 2024-10-10 15:10:22 |
Judging History
answer
#include<bits/stdc++.h>
#define int long long
#define endl '\n';
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef double db;
const int N=5e5+10,inf=1e9+10;
int n,m,k,sum=0,mod,ns[N];
int vis[N];
ll exgcd(ll a,ll b,ll &x,ll &y)
{
if(!b)
{
x=1;y=0;
return a;
}
else
{
ll tx,ty;
ll d=exgcd(b,a%b,tx,ty);
x=ty;y=tx-(a/b)*ty;
return d;
}
}
int cacu(){
int res=0;
if(n==1){
return 1%mod;
}
int v=(1+n);
if(n%2==0){
res=v*n/2;
}else {
res=n/2*v+v/2;
}
return res%mod;
}
void solve(){
cin>>n>>mod;
for(int i=1;i<=n;i++){
cin>>ns[i];
sum+=ns[i];
}
if(n==1){
cout<<0<<endl;
cout<<0<<" "<<0<<endl;
return ;
}
int all=cacu();
sum%=mod;
// cout<<sum<<endl;
int now=mod-sum;
for(int i=0;i<=n;i++){
int a=n,b=all,k=(now+i)%mod,x=0,y=0;
// cout<<a<<" "<<b<<endl;
int d=exgcd(a,b,x,y);
// cout<<k<<" "<<d<<endl;
// cout<<x<<" "<<y<<endl;
if(k%d==0){
x=x*k/d;
// cout<<x<<" "<<y<<" "<<b<<endl;
y=(k-a*x)/b;
x%=mod;
y%=mod;
int ans1=0,ans2=0;
if(x<0){
int v=x*n;
// cout<<x<<" "<<y<<" "<<v<<endl;
int tv=mod+v%mod;
int o=0,oo=0;
// cout<<tv<<endl;
int p=exgcd(a,mod,o,oo)%mod;
// cout<<o<<" "<<oo<<endl;
o*=tv/p;
oo=(tv-a*o)/mod;
ans1=o;
ans2=y;
}
if(y<0){
int v=y*all;
int tv=mod+v%mod;
int o=0,oo=0;
int p=exgcd(all,mod,o,oo)%mod;
o*=tv/p;
oo=(tv-a*o)/mod;
ans1=x;
ans2=oo;
}
cout<<i<<endl;
cout<<ans1<<" "<<ans2<<endl;
return ;
}
}
}
signed main(){
// ios::sync_with_stdio(0);
// cin.tie(0);
// cout.tie(0);
int T=1;
// cin>>T;
while(T--){
solve();
}
}
Details
Tip: Click on the bar to expand more detailed information
Test #1:
score: 100
Accepted
time: 1ms
memory: 5616kb
input:
6 24 1 1 4 5 1 4
output:
1 3 3
result:
ok ok
Test #2:
score: 0
Accepted
time: 0ms
memory: 5744kb
input:
7 29 1 9 1 9 8 1 0
output:
0 0 0
result:
ok ok
Test #3:
score: 0
Accepted
time: 1ms
memory: 5752kb
input:
1 1 0
output:
0 0 0
result:
ok ok
Test #4:
score: -100
Wrong Answer
time: 1ms
memory: 5680kb
input:
1 1000000000 963837005
output:
0 0 0
result:
wrong answer Result not equal to solution.