#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const int mod=1e4+1;
const int maxn=1e4+10;
ll val[maxn];
void get_gcd(ll a,ll b,ll& d,ll& x,ll& y){
if(!b){
d=a;x=1;y=0;
}
else{
get_gcd(b,a%b,d,y,x);
y-=x*(a/b);
}
}
int n;
int check(ll a,ll b){
ll tmp=(a*val[1]+b)%mod;
for(int i=2;i<=n;i++){
if(val[i]!=(a*tmp+b)%mod)
return 0;
tmp=(a*val[i]+b)%mod;
}
return 1;
}
int print(ll a,ll b){
for(int i=1;i<=n;i++){
ll tmp=(a*val[i]+b)%mod;
printf("%lld\n",tmp);
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
scanf("%lld",&val[i]);
}
for(ll a=0;a<=10000;a++){
ll b,k,d;
get_gcd(a+1,mod,d,b,k);//拓展欧几里得
ll tmp=val[2]-a*a*val[1];
if(tmp%d) continue;
b*=tmp/d;
if(check(a,b)){
print(a,b);
break;
}
}
return 0;
}
Disgruntled Judge UVA - 12169
最新推荐文章于 2023-07-30 11:33:53 发布