1
2 /* 不爽的裁判_________________________________________________________________________________
3
4 #include <iostream>
5 #include <map>
6 #include <cmath>
7 #include <vector>
8 #include <cstdio>
9 #include <string>
10 #include <cstring>
11 #include <algorithm>
12 using namespace std;
13 #define fir first
14 #define sec second
15 #define pb(x) push_back(x)
16 #define mem(A, X) memset(A, X, sizeof A)
17 #define REP(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i))
18 #define rep(i,l,u) for(int (i)=(int)(l);(i)>=(int)(u);--(i))
19 #define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e)
20 typedef long long LL;
21 typedef unsigned long long ull;
22 typedef pair<long,long> pll;
23
24
25 LL T,n;
26 const int mod=1e9+7;
27 const int maxn=1e5+10;
28 const int maxt=200+10;
29 const int num=10001;
30 int x[maxt];
31 int main()
32 {
33 freopen("in.txt","r",stdin);
34 //while(cin>>n)
35 while(cin>>T)
36 {
37 REP(i,1,T)
38 {
39 cin>>x[2*i-1];
40 }
41 REP(a,0,num-1)
42 {
43 int flag;
44 REP(b,0,num-1)
45 {
46 flag=1;
47 REP(i,2,2*T)
48 {
49 int t=( a * x[i-1] + b ) % num;
50 if(i&1 && x[i]!=t ) { flag=0; break; } //校验奇数位置
51 else {x[i]=t;}
52 }
53 if(flag) {break;}
54 }
55 if(flag) break;
56 }
57 REP(i,1,T)
58 {
59
60 cout<<x[2*i]<<endl;
61 }
62 }
63 return 0;
64 }
65
66 /*
67 note : 考虑解的所有可能情况,先这样直接进行分析一次.
68 debug : 思路是对的,没有想到的是 三重循环,中间跳出循环的时候只跳出了第二重,第三重循环引发了值的改变.
69 optimize:
70 */