2214 575 56519 54 40 24 8011 2 36 20 76 Sample OutputCase 1: 341Case 2: 5996#include<cstdio>#include<iostream>using namespace std;#define ll long longll g;void exgcd(ll a,ll b,ll& x,ll& y){ if(b==0){ g=a; x=1; y=0; } else{ exgcd(b,a%b,y,x); y-=x*(a/b); }}int main(){ ll n,a,m,mm[10],aa[10],k1,k2,c,T; cin>>T; for(int i=1;i<=T;i++){ int flag=1; cin>>n; for(int i=1;i<=n;i++) cin>>mm[i]; for(int i=1;i<=n;i++) cin>>aa[i]; cout<<"Case "<<i<<": "; a=aa[1]; m=mm[1]; //m*k1+a=m[i]*k2+a[i] for(int i=2;i<=n;i++){ c=aa[i]-a; exgcd(m,mm[i],k1,k2); if(c%g){ flag=0; cout<<-1<<endl; break; } k1=k1*c/g; k1=(k1+mm[i]/g)%(mm[i]/g); a=k1*m+a; m=m*mm[i]/g; } if(flag) { a=(a+m)%m; if(a) cout<<a<<endl; else cout<<m<<endl; } } return 0;}
新闻热点
疑难解答