70求救!!!
查看原帖
70求救!!!
240429
fervency楼主2021/10/7 09:52
/*3
3 1
5 1
7 2*/
/*2
99982 19823
99983 92834//返回负值 
2696734327*/
#include<iostream>
#include<cstdio>
#include<cmath>
#include<algorithm>
using namespace std;
long long n,a[15],b[15],ans;
void ex_gcd(long long a,long long b,long long &x,long long &y)
{
	if(!b){
		x=1;
		y=0;
		return;
	}ex_gcd(b,a%b,y,x);
	y-=x*(a/b);
}
long long china() {
	long long lcm=1,x,y;
	for(int i=1;i<=n;i++)lcm*=b[i];
	for(int i=1;i<=n;i++){
		long long tp=lcm/b[i];
		ex_gcd(tp,b[i],x,y);
		x=(x%b[i]+b[i]%b[i]);
		ans=(ans+a[i]*tp*x)%lcm;
	}
	return ans;
}
int main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++)
	{
		scanf("%lld%lld",&b[i],&a[i]);
	}
	long long q=china();
	printf("%lld",q);
	return 0;
} 
2021/10/7 09:52
加载中...