QOJ.ac

QOJ

ID题目提交者结果用时内存语言文件大小提交时间测评时间
#107020#5301. Modulo Ruins the LegendSmallBlackRE 2ms3552kbC++141.3kb2023-05-20 08:17:162023-05-20 08:17: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 08:17:19]
  • 评测
  • 测评结果:RE
  • 用时:2ms
  • 内存:3552kb
  • [2023-05-20 08:17:16]
  • 提交

answer

// Problem: A - Modulo Ruins the Legend
// Contest: Virtual Judge - 过什么520做题要紧
// URL: https://vjudge.net/contest/559671#problem/A
// Memory Limit: 1024 MB
// Time Limit: 1000 ms
// Date:2023-05-20 07:53:13
// By:SmallBlack
// 
// Powered by CP Editor (https://cpeditor.org)

#include<bits/stdc++.h>
using namespace std;
inline long long read()
{
	long long s=0,k=1;
	char c=getchar();
	while(!isdigit(c))
	{
		k=(c=='-')?-1:1;
		c=getchar();
	}
	while(isdigit(c))
	{
		s=s*10+c-'0';
		c=getchar();
	}
	return s*k;
}
#define d read()
#define ll long long
#define Maxn 10010
#define Size 10010
#define mp make_pair
#define pb push_back
#define fi first
#define se second
ll exgcd(ll a,ll b,__int128 &x,__int128 &y)
{
	if(b==0)
	{
		x=1,y=0;
		return a;
	}
	ll e=exgcd(b,a%b,x,y);
	ll z=x;
	x=y,y=z-y*(a/b);
	return e;
}
void write(__int128 x)
{
	if(x>9) write(x/10);
	putchar('0'+x%10);
	return;
}
int main()
{
	ll n=d,m=d;
	ll sum=0;
	for(int i=0;i<n;i++) (sum+=d)%=m;
	ll a=n,b=n*(n+1)/2;
	a%=m,b%=m;
	ll Gcd=__gcd(a,b);
	ll Gcd_abm=__gcd(__gcd(a,b),m);
	printf("%lld\n",sum%Gcd_abm);
	__int128 xx,x,y;
	exgcd(Gcd_abm,m,xx,x);
	xx=(-sum/__gcd(a,b)*(xx%m))%m;
	exgcd(a,b,x,y);
	x=(x%m*xx%m+m)%m,y=(y%m*xx%m+m)%m;
	write(x),putchar(' '),write(y);
}

详细

Test #1:

score: 100
Accepted
time: 2ms
memory: 3524kb

input:

6 24
1 1 4 5 1 4

output:

1
15 19

result:

ok ok

Test #2:

score: 0
Accepted
time: 2ms
memory: 3552kb

input:

7 29
1 9 1 9 8 1 0

output:

0
0 0

result:

ok ok

Test #3:

score: -100
Runtime Error

input:

1 1
0

output:


result: