#include<iostream>
using namespace std;
typedef long long inta;
int extend_gcd(inta a,inta b,inta &x,inta &y,inta &gcd)
{
if(b==0)
{
x=1;
y=0;
gcd=a;
}
else
{
extend_gcd(b,a%b,x,y,gcd);
int temp=x;
x=y;
y=temp-a/b*y;
}
}
int gcd(int a,int b)
{
if(b==0)
return a;
else return gcd(b,a%b);
}
int main()
{
inta x,y,m,n,l;
while(cin>>x>>y>>m>>n>>l)
{
inta a=n-m;
inta b=l;
inta c=x-y;
inta s=gcd(a,b);
if(c%s!=0)
{
cout<<"Impossible"<<endl;
}
else
{
inta x0,y0,q;
a/=s;
b/=s;
c/=s;
extend_gcd(a,b,x0,y0,q);
x0*=c;
if(b<0) b=-b;
x0=(x0%b+b)%b;
cout<<x0<<endl;
}
}
}
// 1 扩展欧几里得算法,利用递归求出 Bezout等式中x和y的值
// 2 不知道a的正负性时a mod b=(a%b+b0%b
// 3 ax+by=c; gcd(a,b)=1; x的通解模b同余,要求取最下的非负整数就在完系中取即可
转载于:https://www.cnblogs.com/814jingqi/p/3217977.html
最后
以上就是忧虑战斗机最近收集整理的关于poj 1061 青蛙的约会 二元一次不定方程 http://poj.org/problem?id=1061的全部内容,更多相关poj内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复