Pagini recente » Cod sursa (job #1800154) | Cod sursa (job #2194689) | Cod sursa (job #2474012) | Cod sursa (job #1950350) | Cod sursa (job #2303110)
#include <cstdio>
#include <cstring>
using namespace std;
int mat[3][3];
int sol[3][3];
const int mod = 666013;
void mult(int a[3][3], int b[3][3])
{
int c[3][3];
int i,j,k;
memset(c, 0, sizeof(c));
for(i=0; i<=2; i++)
for(j=0; j<=2; j++)
for(k=0; k<=2; k++)
c[i][j]=(c[i][j]+a[i][k]*1LL*b[k][j])%mod;
for(i=0; i<=2; i++)
for(j=0; j<=2; j++)
a[i][j]=c[i][j];
}
void lgput(int n)
{
while(n){
if(n%2==1)
mult(sol, mat);
mult(mat, mat);
n>>=1;
}
}
int main()
{ freopen("iepuri.in", "r",stdin);
freopen("iepuri.out", "w",stdout);
int t,i,x,y,z,a,b,c,n;
scanf("%d", &t);
for(i=1; i<=t; i++){
scanf("%d%d%d%d%d%d%d", &x, &y, &z, &a, &b, &c, &n);
sol[0][0]=x;
sol[0][1]=y;
sol[0][2]=z;
mat[0][0]=mat[0][1]=mat[1][1]=mat[2][0]=0;
mat[1][0]=mat[2][1]=1;
mat[0][2]=c;
mat[1][2]=b;
mat[2][2]=a;
lgput(n-2);
printf("%d\n", sol[0][2]);
}
return 0;
}