Pagini recente » Cod sursa (job #2362490) | Cod sursa (job #3201560) | Cod sursa (job #1934570) | Cod sursa (job #1811051) | Cod sursa (job #274136)
Cod sursa(job #274136)
#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,i;
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
scanf("%lld",&t);
for (int crt=1;crt<=t;crt++){
citire();
init();
p=1;
i=0;
while (p<=n){
if (p & n)
mul1();
i++;
p=1<<i;
mul2();
}
printf("%lld\n",((s[1][1]*x)%Q+(s[2][1]*y)%Q+(s[3][1]*z)%Q)%Q);
}
return 0;
}