Pagini recente » Cod sursa (job #2078766) | Cod sursa (job #1640518) | Cod sursa (job #3326116) | Cod sursa (job #2386803) | Cod sursa (job #3309207)
#include <bits/stdc++.h>
#define int long long
using namespace std;
const int mod = 666013;
vector<vector<int>> mul(vector<vector<int>> a, vector<vector<int>> b)
{
vector<vector<int>> c (a.size(), vector<int>(a.size(), 0));
for(int i = 0; i < a.size(); i++)
{
for(int j = 0; j < a.size(); j++)
{
for(int k = 0; k < a.size(); k++)
{
c[i][j] = (c[i][j] + a[i][k] * b[k][j]) % mod;
}
}
}
return c;
}
vector<vector<int>> exp(vector<vector<int>> a, int k)
{
vector<vector<int>> rez(3, vector<int>(3, 0));
rez[0] = {1, 0, 0};
rez[1] = {0, 1, 0};
rez[2] = {0, 0, 1};
while(k > 0)
{
if((k & 1))
{
rez = mul(a, rez);
}
a = mul(a, a);
k = (k >> 1);
}
return rez;
}
signed main()
{
freopen("iepuri.in", "r", stdin);
freopen("iepuri.out", "w", stdout);
int k;
cin >> k;
while(k--)
{
int n, x, y, z, a, b, c;
cin >> x >> y >> z >> a >> b >> c >> n;
vector<vector<int>> v(3, vector<int>(3, 0));
v =
{
{0, 1, 0},
{0, 0, 1},
{c, b, a}
};
v = exp(v, n);
cout << (v[0][0] * x + v[0][1] * y + v[0][2] * z) % mod << "\n";
}
}