Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
大牛们帮忙看看我这怎么错的吧!#include <stdio.h> __int64 e_gcd(__int64 a, __int64 b, __int64 *x, __int64 *y) { __int64 x1, y1, p; if (b == 0) { *x = 1; *y = 0; return a; } p = e_gcd(b, a % b, &x1, &y1); *x = y1; *y = x1 - (a / b) * y1; return p; } __int64 abs(__int64 a) { return (a > 0) ? a : -a; } int main() { __int64 x, y, m, n, L; __int64 a, b, t, r, gcdans, lcmans, ans; while (scanf("%I64d %I64d %I64d %I64d %I64d", &x, &y, &m, &n, &L) != -1) { x %= L; y %= L; m %= L; n %= L; if (x > y) { a = x - y; b = (n - m + L) % L; } else { a = y - x; b = (m - n + L) % L; } gcdans = e_gcd(a, L, &t, &r); lcmans = a / gcdans * L; if (b % gcdans != 0) { printf("Impossible\n"); } else { ans = (b / gcdans * t + lcmans) % lcmans; printf("%I64d\n", ans); } } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator