Pagini recente » Cod sursa (job #1217320) | Cod sursa (job #1733930) | Cod sursa (job #1311736) | Cod sursa (job #303036) | Cod sursa (job #274140)
Cod sursa(job #274140)
#include<stdio.h>
#define Q 666013
long long x,y,z,a,b,c,n,t,C[5][5],s[5][5],m[5][5];
void citire(){scanf("%lld %lld %lld %lld %lld %lld %lld",&x,&y,&z,&a,&b,&c,&n);}
inline void mul1(){
long long i,j,k;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++){
C[i][j]=0;
for (k=1,C[i];k<=3;k++)
C[i][j]+=s[i][k]*m[k][j];
}
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
s[i][j]=C[i][j]%Q;
}
inline void mul2(){
long long i,j,k;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++){
C[i][j]=0;
for (k=1,C[i];k<=3;k++)
C[i][j]+=m[i][k]*m[k][j];
}
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
m[i][j]=C[i][j]%Q;
}
void init(){
s[1][1]=1; s[1][2]=0; s[1][3]=0;
s[2][1]=0; s[2][2]=1; s[2][3]=0;
s[3][1]=0; s[3][2]=0; s[3][3]=1;
m[1][1]=0; m[1][2]=0; m[1][3]=c;
m[2][1]=1; m[2][2]=0; m[2][3]=b;
m[3][1]=0; m[3][2]=1; m[3][3]=a;
}
int main(){
long long p;
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
scanf("%lld",&t);
for (int crt=1;crt<=t;crt++){
citire();
init();
for (p = 1; p <= n; p <<= 1){
if (p & n)
mul1();
mul2();
}
printf("%lld\n",((s[1][1]*x)%Q+(s[2][1]*y)%Q+(s[3][1]*z)%Q)%Q);
}
return 0;
}