Pagini recente » Cod sursa (job #1940551) | Cod sursa (job #2593763) | Cod sursa (job #1457468) | Cod sursa (job #2568080) | Cod sursa (job #2255270)
#include <bits/stdc++.h>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int x,y,z,a,b,c,n,t;
void inm(int init[3][3],int A[3][3])
{
int rez[3][3];
for(int i=0; i<=2; ++i)
for(int j=0; j<=2; ++j)
{
rez[i][j]=0;
for(int k=0; k<=2; ++k)
rez[i][j]=(rez[i][j]%666013+init[i][k]*A[k][j]%666013)%666013;
}
for(int i=0; i<=2; ++i)
for(int j=0; j<=2; ++j)
init[i][j]=rez[i][j];
}
void rezultat(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];
rezultat(aux,n-2);
g<<(aux[0][2]*x%666013+aux[1][2]*y%666013+aux[2][2]*z%666013)%666013<<"\n";
}
return 0;
}