Pagini recente » Cod sursa (job #342589) | Cod sursa (job #2076730) | Cod sursa (job #1783232) | Cod sursa (job #2385533) | Cod sursa (job #2655406)
#include <fstream>
#define NMAX 5
#define MOD 666013
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
struct mat{long long int a[NMAX][NMAX];}inm,rez;
int t,i,j;
int x,y,z,a,b,c,n;
void build();
mat inmultire(mat a, mat b);
void afis( mat a)
{
int i,j;
for(i=1;i<=3;i++)
{for(j=1;j<=3;j++)
fout<<a.a[i][j]<<" ";
fout<<'\n';
}
}
int main()
{fin>>t;
while(t--)
{
fin>>x>>y>>z>>a>>b>>c>>n;
build();
for(i=0; (1<<i)<=n-2;i++)
{
if( (1<<i) & (n-2) )
{
rez=inmultire(rez, inm);
}
inm=inmultire(inm, inm);
}
long long int r= (rez.a[1][1]*z+rez.a[1][2]*y+rez.a[1][3]*x)%MOD;
fout<<r<<'\n';
}
return 0;
}
void build()
{
int i,j;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
inm.a[i][j]=rez.a[i][j]=0;
rez.a[1][1]=rez.a[2][2]=rez.a[3][3]=1;
inm.a[1][1]=a;
inm.a[1][2]=b;
inm.a[1][3]=c;
inm.a[2][1]=1;
inm.a[3][2]=1;
//afis(inm);
}
mat inmultire( mat a, mat b)
{
int i,j,k;
mat aux;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{ long long int suma=0;
for(k=1;k<=3;k++)
{
suma=(suma+a.a[i][k]*b.a[k][j])%MOD;
}
aux.a[i][j]=suma;
}
return aux;
}