后三个点WA掉了,劳烦各位大佬帮小蒟蒻看看
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;
long long gcd(long long x,long long y)
{
long long gd=x%y;
while(gd)
{
x=y;
y=gd;
gd=x%y;
}
return y;
}
long long ml(long long x, long long y,long long mo)
{
x%=mo, y%=mo;
long long z=(long double)x*y/mo+0.5;
z=x*y-z*mo;
return (z%mo+mo)%mo;
}
void exgcd(long long a,long long b,long long &x,long long &y)
{
if(b==0)
{
x=1,y=0;
return;
}
long long tx=0,ty=0;
exgcd(b,a%b,tx,ty);
x=ty;
y=tx-a/b*ty;
return;
}
long long n;
long long a1,b1,a2,b2;
int main()
{
scanf("%lld",&n);
a1=1,b1=0;
for(int i=1;i<=n;i++)
{
scanf("%lld %lld",&a2,&b2);
long long gcd1=gcd(a1,a2);
long long x=0,y=0;
long long mod=a1*a2/gcd1;
exgcd(a1/gcd1,a2/gcd1,x,y);
x=(x%mod+mod)%mod;
long long a=ml(x,(b2-b1)/gcd1,a2/gcd1)%mod;
b1=(ml(a,a1,mod)+b1)%mod;
a1=mod,b1=(b1%a1+a1)%a1;
}
printf("%lld\n",b1);
}