Pagini recente » Cod sursa (job #1895674) | Cod sursa (job #2194144) | Cod sursa (job #2755254) | Cod sursa (job #2727474) | Cod sursa (job #3253176)
#include <fstream>
#define MOD 666013
#define int long long
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
int v[3][3];
int a[3][3];
int r[3][3];
void f(int p)
{
int i,j,k;
if(p==0)
return;
if(p%2)
{
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<3;k++)
r[i][j]=(r[i][j]+a[i][k]*v[k][j]%MOD)%MOD;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
a[i][j]=r[i][j];
r[i][j]=0;
}
}
for(i=0;i<3;i++)
for(j=0;j<3;j++)
for(k=0;k<3;k++)
r[i][j]=(r[i][j]+v[i][k]*v[k][j]%MOD)%MOD;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
v[i][j]=r[i][j];
r[i][j]=0;
}
f(p/2);
}
signed main()
{
int n,qq,X,Y,Z,A,B,C,t;
cin>>t;
for(qq=1;qq<=t;qq++)
{
cin>>X>>Y>>Z>>A>>B>>C>>n;
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
a[i][j]=v[i][j]=0;
a[0][0]=a[1][1]=a[2][2]=1;
v[0][1]=v[1][2]=1;
v[2][0]=C;
v[2][1]=B;
v[2][2]=A;
f(n-2);
cout<<a[2][0]*X+a[2][1]*Y+a[2][2]*Z<<'\n';
}
return 0;
}