Pagini recente » Cod sursa (job #1411788) | Cod sursa (job #2798420) | Cod sursa (job #101952) | Cod sursa (job #2094899) | Cod sursa (job #2391783)
#include <fstream>
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
const int MOD=666013;
long long t,ac,b,c,x,y,z,n;
struct mat
{
long long m[3][3];
}a,aux;
mat inmultire(mat x,mat y)
{
mat man;
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
man.m[i][j]=0;
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
for(int k=0;k<3;k++)
man.m[i][j]=(man.m[i][j]+1LL*x.m[i][k]*y.m[k][j]%MOD)%MOD;
return man;
}
void init();
int main()
{
int k;
in>>t;
while(t)
{
in>>x>>y>>z>>ac>>b>>c>>n;
init();
k=0;
while((1LL<<k)<=n)
{
if((1LL<<k)&n)
aux=inmultire(aux,a);
k++;
a=inmultire(a,a);
}
out<<((1LL*x*aux.m[0][0])%MOD+(1LL*y*aux.m[1][0])%MOD+(1LL*z*aux.m[2][0])%MOD)%MOD<<'\n';
t--;
}
return 0;
}
void init()
{
a.m[0][0]=0;
a.m[0][1]=0;
a.m[0][2]=c;
a.m[1][0]=1;
a.m[1][1]=0;
a.m[1][2]=b;
a.m[2][0]=0;
a.m[2][1]=1;
a.m[2][2]=ac;
aux.m[0][0]=1;
aux.m[0][1]=0;
aux.m[0][2]=0;
aux.m[1][0]=0;
aux.m[1][1]=1;
aux.m[1][2]=0;
aux.m[2][0]=0;
aux.m[2][1]=0;
aux.m[2][2]=1;
}