First put the code
1 #include<bits/stdc++.h> 2 using namespace std; 3 typedef long long LL; 4 const int mod=1e6+3,N=6e4+5; 5 inline int read(int x=0,bool f=0,char ch=getchar()){ 6 for(;!isdigit(ch);ch=getchar()) f=ch=='-'; 7 for(; isdigit(ch);ch=getchar()) x=(x<<3)+(x<<1)+(ch^48); 8 return f?-x:x; 9 } 10 int n; 11 long long a[N],b,c,d,e; 12 inline LL qpow(LL x,LL y,LL ans=1){ 13 for(;y;y>>=1,x=x*x%mod) if(y&1) ans=ans*x%mod; 14 return ans; 15 } 16 int main(){ 17 n=read(),b=read(),c=read(),d=read(),e=read(); 18 for(int i=0;i<n;++i) a[i]=read(); 19 for(int i=0;i<n;++i){ 20 LL x=(b*qpow(c,4*i)+d*qpow(c,2*i)+e)%mod,X2=x*x%mod,X3=X2*x%mod, 21 X4=X3*x%mod,X5=X4*x%mod,X6=X5*x%mod,X7=X6*x%mod,X8=X7*x%mod,X9=X8*x%mod, 22 X10=X9*x%mod,X11=X10*x%mod,X12=X11*x%mod,X13=X12*x%mod,X14=X13*x%mod 23 ,X15=X14*x%mod,X16=X15*x%mod,X17=X16*x%mod,X18=X17*x%mod, 24 X19=X18*x%mod,X20=X19*x%mod,X21=X20*x%mod,X22=X21*x%mod, 25 X 23 = X 22 * x% v, X24 = X23 * x% v, X25 = X24 * x% v, X26 = X25 * x% v, 26 X 27 = X 26 * x% v, X28 = X27 * x% v, X29 = X 28 * x% v, X30 = X29 * x% v, 27 X 31 = X 30 * x% v, X 32 = X 31 * x% v, X 33 = X 32 * x% v, X34 = X33 * x% v, 28 X35 = X 34 * x% v, X36 = X35 * x% v, X37 = X36 * x% v, X38 = X37 * x% v, 29 X39 = X38 * x% v, X40 = X39 * x% v, X41 = X40 * x% v, X42 = X41 * x% v, 30 X43 = X42 * x% v, X44 = X43 * x% v, X45 = X44 * x% v, X46 = X45 * x% v, 31 X47 = X46 * x v%, X48 = X47 * x v%, X49 = X48 * x v%, X50 = X49 * x v%, ans = 0 ; 32 register int j; 33 for (j = n- 1 ; j> 49 ; j- = 50 ) { 34 year = years * X50, and + = a [j] * X49, and + = a [j- 1 ] * X48, 35 years + = a [ j- 2 ] * X47, and + = a [j- 3 ] * X46, and + = a [j- 4 ] * X45, 36 years + = a [j- 5 ] * X44, and + = a [j- 6 ] * X43, and + = a [j- 7 ] * X42, 37 years + = a [j- 8 ] * X41, and + = a [j- 9 ] * X40, and + = a [j- 10 ] * X39, 38 years + = a [j- 11] * X38, and + = a [j- 12 ] * X37, and + = a [j- 13 ] * X36, 39 years + = a [j- 14 ] * X35, and + = a [j- 15 ] * X34, years + = a [j- 16 ] * X33, 40 years + = a [j- 17 ] * X32, and + = a [j- 18 ] * X31, and + = a [j- 19 ] * X30, 41 years + = a [j - 20 ] * X29, and + = a [j- 21 ] * X28, and + = a [j- 22 ] * X27, 42 years + = a [j- 23 ] * X26, and + = a [j- 24 ] * X25 , years + = a [j- 25 ] * X24, 43 years + = a [j- 26 ] * X23, and + = a [j- 27 ] * X22, and + = a [j- 28 ] * X21, 44 years + = a [j- 29 ] * X20, and + = a [ j- 30 ] * X19, and + = a [j- 31 ] * X18, 45 years + = a [j- 32 ] * X17, and + = a [j- 33 ] * X16, and + = a [j- 34 ] * X15, 46 years + = a [j- 35 ] * X14, and + = a [j- 36 ] * X13, and + = a [j- 37 ] * X12, 47 years + = a [j- 38 ] * X11, and + = a [j- 39] * X10, and + = a [j- 40 ] * X9, 48 years + = a [j- 41 ] * X8, and + = a [j- 42 ] * X7, and + = a [j- 43 ] * X6, 49 years + = a [j- 44 ] * X5, and + = a [j- 45 ] * X4, and + = a [j- 46 ] * X3, 50 years + = a [j- 47 ] * X2, and + = a [j - 48 ] * x + years = a [j- 49 ] =% year mod; 51 } 52 for (; ~ j - j) (years = years * x + a [j])% = mod; 53 printf ( " % lld \ n " , year%against); 54 } 55 return 0 ; 56 }