题目链接:Disgruntled Judge UVA - 12169
#include<iostream>
#include<string>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
#include<map>
#include<iomanip>
const int mod=10001;
typedef long long ll;
ll x[222];
ll ex_gcd(ll a,ll b,ll &x,ll &y){
if(!b){
x=1,y=0;
return a;
}
int ans=ex_gcd(b,a%b,y,x);
y-=a/b*x;
return ans;
}
int main(){
int n,i;
while(scanf("%d",&n) != EOF) {
n*=2;
for(i=1;i<n;i+=2){
scanf("%lld",&x[i]);
}
long long a,b,c,d,y;
for(a=0;;a++){
c=x[3]-a*a*x[1];
d=ex_gcd(a+1,mod,b,y);
if(c%d) continue;
b=b*c/d;
for(i=2;i<=n;i++){
if(i&1){
if(x[i]!=(a*x[i-1]+b)%mod)
break;
}else
x[i]=(a*x[i-1]+b)%mod;
}
if(i>n) break;
}
for(i=2;i<=n;i+=2)
printf("%lld\n",x[i]);
}
return 0;
}