/*
translation:
根据公式x[i] = (a*x[i-1] + b) % 10001 可以生成一串数列。现在给出x[1],x[3],x[5]...x[2*T-1],
要求其下标(从1开始)为偶数的部分。
solution:
其实跟数论没太大关系,纯暴力。
date:
2016.8.24
*/
#include <iostream>
#include <cstring>
using namespace std;
const int maxn = 10001;
int x[maxn], n, a, b;
void solve() {
for(a = 0; a < maxn; a++) {
for(b = 0; b < maxn; b++) {
bool flag = true;
for(int i = 2; i <= n*2; i += 2) {
x[i] = (x[i-1]*a + b) % maxn;
if(i < n*2 && x[i+1] != (x[i]*a + b) % maxn) {
flag = false; break;
}
}
if(flag) return;
}
}
}
int main()
{
//freopen("in.txt", "r", stdin);
while(cin >> n) {
for(int i = 1; i <= n*2-1; i += 2)
scanf("%d", &x[i]);
solve();
for(int i = 2; i <= n*2; i += 2)
printf("%d\n", x[i]);
}
return 0;
}
uva12169(同余模运算+暴搜)
最新推荐文章于 2019-09-25 17:01:54 发布