Pagini recente » Cod sursa (job #1116419) | Cod sursa (job #1346329) | Cod sursa (job #986988) | Cod sursa (job #1724353) | Cod sursa (job #2382718)
#include <fstream>
#include <iostream>
#include <cstdio>
#define mod 666013
using namespace std;
int init[4][4];
int vec[4];
int rez[4][4];
int t,x,y,z,a,b,c,n;
void mult_mat( int x[4][4],int y[4][4])
{
int i,j,k;
int aux[4][4];
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
aux[i][j]=0;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
for(k=1;k<=3;k++)
aux[i][j]+=x[i][k]*y[k][j];
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
x[i][j]=aux[i][j];
}
void add_mat( int x[4][4],int y[4][4])
{
int i,j,k;
int aux[4][4];
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
aux[i][j]=0;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
x[i][j]=x[i][k]+y[k][j];
}
int main()
{
ifstream t1("iepuri.in");
ofstream t2("iepuri.out");
int p,i,j;
t1>>t;
for(;t;t--)
{
t1>>x>>y>>z>>a>>b>>c>>n;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++) init[i][j]=0;
init[1][1]=a; init[1][2]=b; init[1][3]=c;
init[2][1]=1; init[3][2]=1;
vec[1]=z; vec[2]=y; vec[3]=x;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++) rez[i][j]=0;
for(i=1;i<=3;i++) rez[i][i]=1;
n-=2;
for(p=1;p<=n;p*=2)
{
if(p&n) mult_mat(rez,init);
mult_mat(init,init);
}
t2<< (1LL*rez[1][1]*z+rez[1][2]*y+rez[1][3]*x)%mod <<'\n';
}
return 0;
}