QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#107056 | #5301. Modulo Ruins the Legend | Tooler_Fu | WA | 2ms | 3780kb | C++14 | 1.2kb | 2023-05-20 10:13:12 | 2023-05-20 10:13:19 |
Judging History
answer
// Problem: A. Modulo Ruins the Legend
// Contest: Codeforces - The 2022 ICPC Asia Hangzhou Regional Programming Contest
// URL: https://codeforces.com/gym/104090/problem/A
// Memory Limit: 1024 MB
// Time Limit: 1000 ms
//
// Powered by CP Editor (https://cpeditor.org)
//MD OI赛制出Subtask是真的SB
//我是废物,我爱贺题!!!
#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define f(i,x,y,z) for(long long i=x;i<=y;i+=z)
#define fd(i,x,y,z) for(long long i=x;i>=y;i-=z)
ll n,m;
ll yi,er;
ll ans1,ans2;
ll sum;
ll exgcd(ll a,ll b,ll &x,ll &y){
if(b==0){
x=1,y=0;
return a;
}
ll d=exgcd(b,a%b,x,y);
ll z=x;
x=y;
y=z-y*(a/b);
return d;
}
int main(){
scanf("%lld%lld",&n,&m);
f(i,1,n,1){
ll xx;
scanf("%lld",&xx);
sum+=xx;
}
if(n==1){
printf("%lld\n%lld 0\n",(m-sum%m)%m,(m-sum%m)%m);
return 0;
}
yi=n;
er=n*(n+1)/2;
ll ff=__gcd(yi,er);
ll kk=(m-sum%m)%m;
ll hh=(kk/ff+(kk%ff==0?0:1))*ff-kk;
printf("%lld\n",hh);
if(hh==0){
printf("0 0\n");
return 0;
}
hh+=kk;
exgcd(yi,er,ans1,ans2);
ll nm=hh/ff;
ans1*=nm;
ans2*=nm;
while(ans1<0){
ans1+=m;
}
while(ans2<0){
ans2+=m;
}
printf("%lld %lld\n",ans1,ans2);
return 0;
}
詳細信息
Test #1:
score: 100
Accepted
time: 2ms
memory: 3604kb
input:
6 24 1 1 4 5 1 4
output:
1 15 3
result:
ok ok
Test #2:
score: 0
Accepted
time: 2ms
memory: 3780kb
input:
7 29 1 9 1 9 8 1 0
output:
0 0 0
result:
ok ok
Test #3:
score: 0
Accepted
time: 0ms
memory: 3580kb
input:
1 1 0
output:
0 0 0
result:
ok ok
Test #4:
score: -100
Wrong Answer
time: 1ms
memory: 3536kb
input:
1 1000000000 963837005
output:
36162995 36162995 0
result:
wrong answer Result not equal to solution.