Pagini recente » Cod sursa (job #1578153) | Cod sursa (job #2110241) | Cod sursa (job #1338871) | Cod sursa (job #2412549) | Cod sursa (job #1562563)
#include <fstream>
#include <cstring>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int tst,x,y,z,a,b,c,n;
int m[4][4],t[4][4],sol[4][4];
void mul1()
{
int i,j,k,r[4][4];
memset(r,0,sizeof(r));
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{
for (k=1;k<=3;k++)
r[i][j]+=(1LL*sol[i][k]*m[k][j])%MOD;
r[i][j]%=MOD;
}
memcpy(sol,r,sizeof(r));
}
void mul2()
{
int i,j,k,r[4][4];
memset(r,0,sizeof(r));
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
{
for (k=1;k<=3;k++)
r[i][j]+=(1LL*m[i][k]*m[k][j])%MOD;
r[i][j]%=MOD;
}
memcpy(m,r,sizeof(r));
}
void rid_log(long long p)
{
long long i,j;
for (i = 0;1LL*((1LL*1)<<i)<=p;i++)
{
if (((1<<i)&p)>0)
mul1();
mul2();
}
}
int main()
{
int i, j, temp, t1, t2, t3;
for (f>>tst;tst;tst--)
{
f>>x>>y>>z>>a>>b>>c>>n;
m[1][2]=1;
m[2][3]=1;
m[3][1]=c;
m[3][2]=b;
m[3][3]=a;
memcpy(sol,m,sizeof(m));
rid_log(n-3);
c=sol[3][1];
b=sol[3][2];
a=sol[3][3];
t1=(1LL*c*x)%MOD;
t2 = (1LL*b*y)%MOD;
t3 = (1LL*a*z)%MOD;
temp=(t1+t2+t3)%MOD;
g<<temp<<'\n';
}
}