比赛 201712练习 评测结果 AAAAAAAAAA
题目名称 同余方程 最终得分 100
用户昵称 pztl 运行时间 0.003 s
代码语言 C++ 内存使用 0.32 MiB
提交时间 2017-12-23 16:42:50
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int x,y;
int a,b;
int luo(int a, int b, int &x, int &y)
{
    if(b==0) 
    {
        x=1;
        y=0;
        return a;
    }
    int n=luo(b,a%b,x,y);
    int tmp=x;
    x=y;
    y=tmp-(int)(a/b)*y;
    return n;
}  
bool luo1(int a, int b, int c, int &x, int &y)
{
    int n=luo(a,b,x,y);
    if(c%n)
	return false; 
    while(x<0)
    x+=b;
    int k=c/n;
    x*=k;
    y*=k;
    return true;
}
int main()
{
    freopen("mod.in","r",stdin);
    freopen("mod.out","w",stdout);
    cin>>a>>b;
    luo1(a,b,1,x,y);
    cout<<x;
    return 0;
}