ACM PKU 1061 青蛙的约会
题目描述:http://poj.org/problem?id=1061
#include <cstring> #include <cstdio> long long x,y,m,n,L,X,Y; long long gcd(long long a, long long b) { if(b==0)return a; else return gcd(b,a%b); } long long ext_gcd(long long a,long long b,long long& x,long long& y) { long long t,ret; if (!b) { x=1,y=0; return a; } ret=ext_gcd(b,a%b,x,y); t=x,x=y,y=t-a/b*y; return ret; } int main() { //freopen("in.txt","r",stdin); while (scanf("%lld%lld%lld%lld%lld",&X,&Y,&m,&n,&L)!=EOF) { long long a = n-m; long long b = L; long long c = X-Y; long long d = gcd(a,b); //构造不定方程; if(c%d!=0) { printf("Impossible\n");continue;} a=a/d; b=b/d; c=c/d; ext_gcd(a,b,x,y); //求解ax+by=1的解 x = x*c; y = y*c; //求acx+bcy=c的解 long long ans,t; t = x/b; ans = x - b*t; if(ans<=0) //求解系; { ans+=b; } printf("%d\n",ans); } return 0; }