链接:http://codeforces.com/gym/101408/attachments 代码: #include <bits/stdc++.h> using namespace std; #define ll long long const int mod =10001; ll exgcd(ll a,ll b, ll& x,ll& y) { if(b==0) { x=1; y=0; return a; } ll t= exgcd(b,a%b,y,x); y-=(a/b)*x; return t; } ll xi[mod]; ll yi[mod]; int t; ll a,b; ll x,y; bool check(ll a,ll b) { // for(int i=0;i<t;i++) // { // yi[0]=(a*xi[0]+b)%mod; // if(i>0&&(a*yi[i-1]+b)%mod!=xi[i]) // return false; // } yi[0]=(a*xi[0]+b)%mod; for(int i=1;i<t;i++) { if(xi[i]!=(a*yi[i-1]+b)%mod) return false; yi[i]=(a*xi[i]+b)%mod; } return true; } void solve() { for(int i=0;i<mod;i++) { a=i; ll gcd=exgcd(a+1,mod,x,y); ll c=xi[1]-a*a*xi[0]; if(c%gcd!=0) { continue; } else { b=((x*c/gcd)%mod+mod)%mod; if(check(a,b)) { for(int i=0;i<t;i++) { printf("%lld\n",yi[i]); } break; } } } } int main() { scanf("%d",&t); for(int i=0;i<t;i++) { scanf("%lld",&xi[i]); } solve(); return 0; }