88pts 求调
查看原帖
88pts 求调
448873
Pig_py楼主2023/7/20 12:33
#include<bits/stdc++.h>
#define int long long
using namespace std;
long long gcd(int u,int v){
    return (v==0)?u:gcd(v,u%v);
}
void solve(int p1,int a1,int p2,int a2,int &p,int &a){
	if(p1<p2)swap(p1,p2),swap(a1,a2);
	int x=a1;
	int g=gcd(p1,p2);
	int l=p1/g*p2;
	while(x<=l&&x%p2!=a2)x+=p1;
	if(x>l)p=-1,a=-1;
	else p=l,a=x;
}
/*
x=a1(mod p1)
x=a2(mod p2)
x=a[1](mod p[1])
x=a[1]-p[1]*y
*/
int n,p[100005],a[100005];
signed main(){
	scanf("%lld",&n);
	for(int i=1;i<=n;i++){
		scanf("%lld%lld",&p[i],&a[i]);
	}
	while(n>1){
		solve(p[n-1],a[n-1],p[n],a[n],p[n-1],a[n-1]);
		n--;
	}
	printf("%lld",a[1]-p[1]*(a[1]/p[1]));
}
2023/7/20 12:33
加载中...