Pagini recente » Cod sursa (job #2902561) | Cod sursa (job #317858) | Cod sursa (job #1990514) | Cod sursa (job #1260362) | Cod sursa (job #2865861)
#include <iostream>
#include <fstream>
#define MOD 666013
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int t, n, x, y, z, a, b, c;
int f[5][5], r[5][5], bz[5][5], aux[5][5];
void copiere(int x[5][5], int y[5][5])
{
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
x[i][j]=y[i][j];
}
void init()
{
f[0][0]=a;
f[0][1]=b;
f[0][2]=c;
f[1][0]=1;
f[1][1]=0;
f[1][2]=0;
f[2][0]=0;
f[2][1]=1;
f[2][2]=0;
copiere(r, f);
copiere(bz, f);
}
void mult(int x[5][5], int y[5][5], int z[5][5])
{
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
for(int k=0; k<3; k++)
z[i][j]+=(x[i][k]*y[k][j])%MOD;
}
void puteri()
{
if(n==1)
fout<<x<<"\n";
else if(n==2)
fout<<y<<"\n";
else if(n==3)
fout<<z<<"\n";
else
{
n-=3;
while(n)
{
if(n%2==0)
{
mult(bz, bz, aux);
copiere(bz, aux);
n/=2;
}
else
{
mult(r, bz, aux);
copiere(r, aux);
n--;
}
}
fout<<x*r[0][0]+y*r[0][1]+z*r[0][2]<<"\n";
}
}
void citire()
{
fin>>t;
for(int i=0; i<t; i++)
{
fin>>x>>y>>z>>a>>b>>c>>n;
init();
puteri();
}
}
int main()
{
citire();
return 0;
}