84pts,求调
查看原帖
84pts,求调
1495534
huangjialuo楼主2025/1/23 13:12
#include <iostream>
#include <algorithm>

using namespace std;
typedef long long LL;

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

int main()
{
    LL a1 = 1,m1 = 0;
    int n;
    cin >> n >> a1 >> m1;
    n -= 1;
    while (n --)
    {
        LL a2,m2;
        cin >> a2 >> m2;
        
        LL k1,k2;
        LL d = exgcd(a1,a2,k1,k2);
        if((m2 - m1 ) % d)
        {
            cout << -1;
            return 0;
        }
        
        k1 *= (m2 - m1) / d; 
        LL t = a2 / d;
        k1 = (k1 % t + t) % t;
        
        m1 = a1 * k1 + m1;
        a1 = abs(a1 / d * a2);
        
    }
    
    cout << (m1 % a1 + a1) % a1 << "\n" ;
    return 0;
}
2025/1/23 13:12
加载中...