60分求助,WA
查看原帖
60分求助,WA
167697
BartAllen楼主2023/3/23 13:02
#include <bits/stdc++.h>
using namespace std;

typedef long long ll;
const int N = 15;

int n;
int a[N], b[N], m[N], t[N];
ll mul = 1, ans;

ll exgcd(ll a, ll b, ll &x, ll &y) {
	if (b == 0) {
		x = 1, y = 0;
		return a;
	}
	int d = exgcd(b, a % b, x, y);
	int z = x; x = y, y = z - y * (a / b);
	return d;
}

int main() {
	cin >> n;
	for (int i = 1; i <= n; i++) {
		cin >> b[i] >> a[i];
		mul *= b[i];
	}
	for (int i = 1; i <= n; i++) {
		m[i] = mul / b[i];
		ll x = 0, y = 0;
		exgcd(m[i], b[i], x, y);
		if (x < 0) ans += a[i] * m[i] * (x + b[i]);
		else ans += a[i] * m[i] * x;
	}
	cout << ans % mul << endl;
	return 0;
}
2023/3/23 13:02
加载中...