Lang:G++
Edit12345678910111213141516171819202122232425262728293031#include<cstdio>#include<cstring>#include<iostream>#include<cmath>#include<map>#include<algorithm>using namespace std;typedef long long ll;ll extended_gcd(ll a,ll b,ll &x,ll &y){if(!a&&!b)return -1;if(!b){x=1;y=0;return a;}ll d=extended_gcd(b,a%b,y,x);y-=a/b*x;return d;}ll m[1005],a[1005];bool solve(ll &m0,ll &a0,ll m,ll a){ll x,y;ll g=extended_gcd(m0,m,x,y);if(abs(a-a0)%g)return false;x*=(a-a0)/g;x%=m/g;a0=(x*m0+a0);m0*=m/g;a0%=m0;if(a0<0)a0+=m0;