Pagini recente » Cod sursa (job #207536) | Cod sursa (job #3153479) | Cod sursa (job #2405735) | Cod sursa (job #2272857) | Cod sursa (job #1334838)
#include <fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
#define mod 666013
int t,x,y,z,a,b,c,n;
int sol[5][5],m1[5][5],m2[5][5];
void afis()
{
int i,j;
for (i=1;i<=3;i++)
{
for (j=1;j<=3;j++)
cout<<m1[i][j]<<" ";
cout<<'\n';
}
cout<<'\n';
}
void inm1()
{
int i,j,k;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
m2[i][j]=0;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
for (k=1;k<=3;k++)
m2[i][j]+=(sol[i][k]*m1[k][j])%mod;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
sol[i][j]=m2[i][j]%mod;
}
void inm2()
{
int i,j,k;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
m2[i][j]=0;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
for (k=1;k<=3;k++)
m2[i][j]+=(m1[i][k]*m1[k][j])%mod;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
m1[i][j]=m2[i][j]%mod;
}
void rid(int put)
{
int i,j;
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{
m1[i][j]=0;
sol[i][j]=0;
}
sol[1][1]=x;
sol[1][2]=y;
sol[1][3]=z;
m1[2][1]=1;
m1[3][2]=1;
m1[1][3]=c;
m1[2][3]=b;
m1[3][3]=a;
//afis();
for (i=0;(1<<i)<=put;i++)
{
if ((1<<i)&put)
{
inm1();
}
inm2();
//afis();
}
}
int main()
{
int i,j;
cin>>t;
for (;t;t--)
{
cin>>x>>y>>z>>a>>b>>c>>n;
if (n==3) cout<<z<<'\n';
else
{
n-=2;
rid(n);
cout<<sol[1][3]<<'\n';
}
}
}