Pagini recente » Cod sursa (job #2596031) | Cod sursa (job #1482212) | Cod sursa (job #2103228) | Cod sursa (job #288068) | Cod sursa (job #203570)
Cod sursa(job #203570)
#include <stdio.h>
#include <string.h>
const int p=666013;
typedef long long matrix[4][4];
int T,x,y,z,a,b,c,n;
matrix A,B;
void mul(matrix A,matrix B){
matrix C;
int i,j,k;
for (i=1;i<=3;++i)
for (j=1;j<=3;++j){
C[i][j]=0;
for (k=1;k<=3;++k) C[i][j]+=A[i][k]*B[k][j];
C[i][j]%=p;}
for (i=1;i<=3;++i)
for (j=1;j<=3;++j)
A[i][j]=C[i][j];
}
int solve(){
A[1][1]=a;A[1][2]=b;A[1][3]=c;
A[2][1]=1;A[2][2]=0;A[2][3]=0;
A[3][1]=0;A[3][2]=1;A[3][3]=0;
memset(B,0,sizeof(B));
B[1][1]=B[2][2]=B[3][3]=1;
while (n>0){
if (n&1) mul(B,A);
mul(A,A);
n/=2;
}
return (B[3][1]*z+B[3][2]*y+B[3][3]*x)%p;
}
int main(){
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
scanf("%d",&T);
while (T--){
scanf("%d %d %d %d %d %d %d",&x,&y,&z,&a,&b,&c,&n);
printf("%d\n",solve());
}
return 0;
}