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() { LL a1, b1, a2, b2, A, B, X, Y, K, d; int n; while(scanf("%d", &n)!=EOF) { bool bk = true; scanf("%lld%lld", &a1, &b1); for(int i=2; i<=n; i++) { scanf("%lld%lld", &a2, &b2); A = a1; B = a2; K = b2 - b1; exgcd(A, B, d, X, Y); if(K % d != 0) bk = false; LL dx = abs(B/d), dy = abs(A/d); X = X * (K/d); X = (X % dx + dx) % dx; b1 = a1 * X + b1; a1 = a1 / d * a2; } if(bk == false) printf("-1\n"); else printf("%lld\n", b1); } return 0; }
- 1
信息
- ID
- 1773
- 时间
- 1000ms
- 内存
- 512MiB
- 难度
- 8
- 标签
- 递交数
- 128
- 已通过
- 21
- 上传者