您的位置:首页 > 其它

POJ-1061-青蛙的约会

2013-03-12 21:01 246 查看
搞的很蛋疼~

代码:

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
long long x,y,m,n,L;
long long exgcd(long long m,long long &x,long long n,long long &y)
{
int x1,y1,x0,y0;
x0=1,y0=0;
x1=0,y1=1;
long long r=((m%n)+n)%n;
long long q=(m-r)/n;
x=0;y=1;
while(r)
{
x=x0-q*x1;y=y0-q*y1;x0=x1;y0=y1;
x1=x;
y1=y;
m=n;n=r;r=m%n;
q=(m-r)/n;
}
return n;
}
int main()
{
while(scanf("%lld%lld%lld%lld%lld",&x,&y,&m,&n,&L)!=EOF)
{
long long itx=x,ity=y;
long long M=exgcd(n-m,itx,L,ity);
if((x-y)%M||m==n)
printf("Impossible\n");
else
{
long long s=L/M;
long long ans=itx*((x-y)/M);
ans=(ans%s+s)%s;
printf("%lld\n",ans);
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: