Pagini recente » Cod sursa (job #1002182) | Cod sursa (job #2635607) | Cod sursa (job #690609) | Cod sursa (job #1908901) | Cod sursa (job #2970265)
#include <fstream>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int t,x,y,z,A,B,C,n;
int p[3][3],sol[3][3];
void init_p(int A,int B,int C)
{
//p={A,1,0,B,0,0,C,0,0};
p[0][0]=A;
p[0][1]=B;
p[0][2]=C;
p[1][0]=1;
p[1][1]=0;
p[1][2]=0;
p[2][0]=0;
p[2][1]=1;
p[2][2]=0;
}
void init_sol()
{
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
sol[i][j]=p[i][j];
}
void inm_mat()
{
int t[3][3];
for(int i=0;i<=2;i++)
for(int j=0;j<=2;j++)
t[i][j]=p[i][j],p[i][j]=0;
for(int i=0;i<=2;i++)
{
for(int j=0;j<=2;j++)
{
for(int d=0;d<=2;d++)
{
p[i][j]=(1LL*p[i][j]+((1LL*t[i][d]*t[d][j])%MOD))%MOD;
}
}
}
}
void inm_sol()
{
int t[3][3];
for(int i=0;i<=2;i++)
for(int j=0;j<=2;j++)
t[i][j]=sol[i][j],sol[i][j]=0;
for(int i=0;i<=2;i++)
{
for(int j=0;j<=2;j++)
{
for(int d=0;d<=2;d++)
{
sol[i][j]=(1LL*sol[i][j]+((1LL*p[i][d]*t[d][j])%MOD))%MOD;
}
}
}
}
void solve()
{
f>>x>>y>>z>>A>>B>>C>>n;
if(n==1)
{
g<<x%MOD<<'\n';
return;
}
if(n==2)
{
g<<y%MOD<<'\n';
return;
}
if(n==3)
{
g<<z%MOD<<'\n';
return;
}
init_p(A,B,C);
init_sol();
n-=3;
while(n)
{
if(n%2==1)
{
inm_sol();
}
inm_mat();
n/=2;
}
g<<((x*sol[0][2])%MOD+(y*sol[0][1])%MOD+(z*sol[0][0])%MOD)%MOD<<'\n';
}
int main()
{
f>>t;
while(t--)
{
solve();
}
return 0;
}