#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
void extend_gcd(ll a,ll b,ll &x,ll &y) {
if(b == 0) {
x = 1; y = 0; return;
}
extend_gcd(b, a % b, y, x);
y -= (a / b) * x;
}
ll CRT(int a[],int m[],int n) {
ll M = 1, ans = 0;
for (int i = 0; i < n; ++i) M *= m[i];
for (int i = 0; i < n; ++i) {
ll Mi = M / m[i], x, y;
extend_gcd(Mi, m[i], x, y);
ans = (ans + Mi * x * a[i]) % M;
}
return (ans + M) % M;
}
int a[15], m[15];
int main() {
int n; cin >> n;
for (int i = 0; i < n; ++i) {
cin >> m[i] >> a[i];
}
ll ans = CRT(a, m, n);
cout << ans << endl;
return 0;
}
P1495-曹冲养猪
猜你喜欢
转载自blog.csdn.net/BX2359575459/article/details/103509816
今日推荐
周排行