#include<bits/stdc++.h>
using namespace std;
long long s[300];
long long exgcd(long long a,long long b,long long& x,long long& y){
if(!b){
x=1;
y=0;
return a;
}
long long d=exgcd(b,a%b,x,y);
long long t=x;x=y;y=t-a/b*y;
return d;
}
int main(){
long long t,i,a,b,c,d,k,tt,ok;
scanf("%lld",&t);
for(i=1;i<=t;i++)
scanf("%lld",&s[i*2-1]);
for(a=0;a<=10000;a++){
d=exgcd(a+1,10001,b,k);
c=s[3]-a*a*s[1];
if(c%d)continue;
tt=c/d;
b=b*tt%10001;
k*=tt;
ok=1;
for(i=1;i<=t;i++){
s[2*i]=(s[2*i-1]*a+b)%10001;
if(i!=1&&(s[2*i-2]*a+b)%10001!=s[2*i-1]){
ok=0;break;
}
}
if(ok==1){
for(i=1;i<=t;i++)
printf("%lld\n",s[i*2]);
return 0;
}
}
return 0;
}
UVA 12169 Disgruntled Judge - NWERC 2008 扩展欧几里得
最新推荐文章于 2020-02-10 18:27:34 发布