记录编号 234312 评测结果 AAAAAAAAAA
题目名称 [NOIP 2012]同余方程 最终得分 100
用户昵称 Gravatar农场主 是否通过 通过
代码语言 C++ 运行时间 0.002 s
提交时间 2016-03-07 20:06:23 内存使用 0.29 MiB
显示代码纯文本
#include<cstdio>
using namespace std;
typedef long long LL;
LL d=2;
void gcd(LL a,LL b,LL& d,LL& x,LL& y)
{
	if (!b){d=a;x=LL(1);y=LL(0);}
	else {gcd(b,a%b,d,y,x);y-=x*(a/b);}
}
LL inv(LL a,LL n)
{
	LL x,y;
	gcd(a,n,d,x,y);
	return d==1 ? (x+n)%n : -1;
}
int main()
{
	freopen("mod.in","r",stdin);
	freopen("mod.out","w",stdout);
	LL a,b;
	scanf("%lld%lld",&a,&b);
	LL ans=inv(a,b);
	ans+=-1*(ans/(b/d))*(b/d);
	while (ans<=0) {ans+=b/d;}
	printf("%lld",ans);
	return 0;
}