Pagini recente » Cod sursa (job #1598726) | Cod sursa (job #92812) | Cod sursa (job #1455036) | Cod sursa (job #1539910) | Cod sursa (job #2236034)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int x,y,z,a,b,c,n,t;
void inm(int tbi1[3][3],int tbi2[3][3])
{
int tbi3[3][3];
for(int i=0; i<=2; ++i)
for(int j=0; j<=2; ++j)
{
tbi3[i][j]=0;
for(int k=0; k<=2; ++k)
tbi3[i][j]=(tbi3[i][j]+tbi1[i][k]*tbi2[k][j])%666013;
}
for(int i=0; i<=2; ++i)
for(int j=0; j<=2; ++j)
tbi1[i][j]=tbi3[i][j];
}
void rez(int mat[3][3],int p)
{
int aux[3][3];
for(int i=0; i<=2; ++i)
for(int j=0; j<=1; ++j)
aux[i][j]=0;
aux[1][0]=aux[2][1]=1;
aux[0][2]=c;
aux[1][2]=b;
aux[2][2]=a;
for(int i=0; i<=2; ++i)
for(int j=0; j<=2; ++j)
mat[i][j]=0;
mat[0][0]=mat[1][1]=mat[2][2]=1;
while(p)
{
if(p%2)
inm(mat,aux);
inm(aux,aux);
p/=2;
}
}
int main()
{
f>>t;
while(t--)
{
f>>x>>y>>z>>a>>b>>c>>n;
int aux[3][3];
rez(aux,n-2);
g<<(1LL*aux[0][2]*x+1LL*aux[1][2]*y+1LL*aux[2][2]*z)%666013<<"\n";
}
return 0;
}