@WangYixu
2018-06-15T11:35:17.000000Z
字数 494
阅读 880
OI 题解 数论 数学
设相遇时间为,那么,两只青蛙相遇可以表示为,即,化简得。
扩欧解即可。
#include<cstdio>#include<algorithm>using std::swap;typedef long long ll;void exgcd(ll a, ll b, ll &d, ll &x, ll &y) {if (!b) {d = a; x = 1; y = 0;} else {exgcd(b, a%b, d, y, x);y -= (a/b)*x;}}int main() {ll x, y, m, n, l;scanf("%lld %lld %lld %lld %lld", &x, &y, &m, &n, &l);ll t, k, d;if(n > m) {swap(m, n);swap(x, y);}exgcd(m-n, l, d, t, k);if((y-x) % d) printf("Impossible\n");else {printf("%lld\n", (t*(y-x)/d + (l/d)) % (l/d));//调整t为最小正值。}return 0;}
