POJ1061

来源:互联网 发布:java入门123 编辑:程序博客网 时间:2024/05/19 07:27

拓展欧几里得解线性方程组

#include "iostream"#include "cstdio"using namespace std;long long d;long long GcdFull(long long a,long long b,long long &x,long long &y){if (b == 0){x = 1;y = 0;return a;}long long g = GcdFull(b,a % b,x,y);long long t = x;x = y;y = t - (a / b) * y;return g;}int main(void){long long a,b,x,y,l,m,n,gcd;long long s1,s2;while(cin >> x >> y >> m >> n >> l){a = n - m;b = l;d = x - y;if ( d % (gcd = GcdFull(a,b,s1,s2))){printf("Impossible\n");}else{b /= gcd;d /= gcd;s1 = ((s1 * d ) % b + b) % b;printf("%lld\n",s1);}}return 0;}


 

原创粉丝点击