Pagini recente » Cod sursa (job #1397333) | Cod sursa (job #1688180) | Cod sursa (job #1501687) | Cod sursa (job #1525305) | Cod sursa (job #2568179)
#include <bits/stdc++.h>
#define NMAX 10
#define MOD 666013
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
struct tip{long long int a[NMAX][NMAX]; };
tip val;
tip rez;
long long int n;
long long int v[NMAX];
long long int fact[NMAX];
long long int t,i;
void init()
{
int i;
for(i=0;i<4;i++)
memset(val.a[i],0,sizeof(val.a[i]) );
val.a[1][1]=fact[1];
val.a[1][2]=fact[2];
val.a[1][3]=fact[3];
val.a[2][1]=val.a[3][2]=1;
for(i=0;i<4;i++)
memset(rez.a[i],0,sizeof(rez.a[i]) );
rez.a[1][1]=rez.a[2][2]=rez.a[3][3]=1;
}
void inm()
{ int i,j;
tip ret;
for(i=1;i<=3;i++)
memset(ret.a[i],0, sizeof(ret.a[i]));
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
for(int ct=1;ct<=3;ct++)
ret.a[i][j]=(ret.a[i][j]+ rez.a[i][ct]* val.a[ct][j])%MOD;
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
rez.a[i][j]=ret.a[i][j];
}
void inm1()
{
int i,j;
tip ret;
for(i=1;i<=3;i++)
memset(ret.a[i],0, sizeof(ret.a[i]));
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
{
for(int ct=1;ct<=3;ct++)
ret.a[i][j]=(ret.a[i][j]+ val.a[i][ct]* val.a[ct][j])%MOD;
}
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
val.a[i][j]=ret.a[i][j];
}
int main()
{fin>>t;
while(t--)
{
fin>>v[1]>>v[2]>>v[3];
fin>>fact[1]>>fact[2]>>fact[3];
fin>>n;
init();
for(int j=0; (1<<j)<=n-2;j++)
{
if( (1<<j) & (n-2) )
{
inm();
}
inm1();
}
long long int sum=0;
for(i=1;i<=3;i++)
{
sum=(sum+ rez.a[1][i]* v[4-i])%MOD;
}
fout<<sum<<'\n';
}
return 0;
}