纯粹的二元一次方程求最小整数解,结果50分……
#include<bits/stdc++.h>
using namespace std;
int x,y,m,n,l,a,b,c,d,X,Y;
void exgcd(int a,int b){
if(!b){
X=1;
return;
}
exgcd(b,a%b);
int t=X;
X=Y;
Y=t-a/b*Y;
}
int main(){
scanf("%d%d%d%d%d",&x,&y,&m,&n,&l);
a=n-m,b=l,c=__gcd(a,b),d=x-y;
exgcd(a,b);
if(c%d) printf("Impossible");
else printf("%d",(d*X%b+b)%b);
return 0;
}