Pagini recente » Cod sursa (job #3285586) | Cod sursa (job #1188857) | Cod sursa (job #2217448) | Cod sursa (job #481066) | Cod sursa (job #1043230)
#include <iostream>
#include <fstream>
#include <memory.h>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
const int mod = 666013;
long long X, Y, Z, A, B, C, n, t, m[5][5], p[5][5], r[5][5];
void Inm(long long a[][5], long long b[][5], long long c[][5])
{
for(int i=1; i<=3; i++)
for(int j=1; j<=3; j++)
for(int k=1; k<=3; k++)
c[i][j] = (c[i][j] + 1LL * a[i][k] * b[k][j]) % mod;
}
void Exp(int k)
{
memset(p, 0, sizeof p);
memset(m, 0, sizeof m);
p[1][1] = p[2][2] = p[3][3] = 1;
m[1][2] = m[2][3] = 1;
m[3][1] = C, m[3][2] = B, m[3][3] = A;
for(long long i=1LL; i <= k; i<<=1)
{
if(i & k)
{
memset(r, 0, sizeof r);
Inm(p, m, r);
memcpy(p, r, sizeof r);
}
memset(r, 0, sizeof r);
Inm(m, m, r);
memcpy(m, r, sizeof r);
}
}
int main()
{
fin>>t;
while(t--)
{
fin>>X>>Y>>Z>>A>>B>>C>>n;
Exp(n-2);
fout<<(p[3][1]*X + p[3][2]*Y + p[3][3]*Z) % mod << '\n';
}
return 0;
}