1 条题解
-
0
#include<bits/stdc++.h> using namespace std; typedef long long LL; void exgcd(LL a, LL b, LL &d, LL &x, LL &y) { if(b == 0) {d = a; x = 1; y = 0;} else { exgcd(b, a % b, d, y, x); y -= (a / b) * x; } }int main() { int T; scanf("%d", &T); while(T--) { LL n, dd, x, y; scanf("%lld%lld%lld%lld", &n, &dd, &x, &y); LL A, B, d, X, Y, K; A = dd, B = n, K = y - x; exgcd(A, B, d, X, Y); if(K % d != 0) printf("Impossible\n"); else { LL dx = abs(B / d), dy = abs(A / d); X = X * (K / d); X = (X % dx + dx) % dx; printf("%lld\n", X); } } return 0; }
- 1
信息
- ID
- 1772
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- 6
- 标签
- 递交数
- 88
- 已通过
- 29
- 上传者