QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#107056#5301. Modulo Ruins the LegendTooler_FuWA 2ms3780kbC++141.2kb2023-05-20 10:13:122023-05-20 10:13:19

Judging History

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

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2023-05-20 10:13:19]
  • 评测
  • 测评结果:WA
  • 用时:2ms
  • 内存:3780kb
  • [2023-05-20 10:13:12]
  • 提交

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;
} 

Details

Tip: Click on the bar to expand more detailed information

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.