Pagini recente » Cod sursa (job #2550181) | Cod sursa (job #729124) | Cod sursa (job #1660102) | Cod sursa (job #2888671) | Cod sursa (job #2871141)
#pragma region Header
#define _CRT_SECURE_NO_WARNINGS
#include <bits/stdc++.h>
#include <unordered_set>
#include <unordered_map>
#include <chrono>
#include <map>
#include <thread>
#include <mutex>
#include <future>
typedef unsigned long long ull;
typedef long long ll;
typedef unsigned int uint;
#define endl '\n'
using namespace std;
#if 1
#include <fstream>
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
#define cin fin
#define cout fout
#endif
#pragma endregion
const int MOD = 666013;
struct Mat
{
ll a[3][3]{};
Mat operator*(const Mat& b)
{
Mat res{};
for(int i =0;i<3;i++)
for(int j=0;j<3;j++)
for(int k=0;k<3;k++)
res.a[i][j] = (res.a[i][j] + (a[i][k]%MOD* b.a[k][j])%MOD )%MOD;
return res;
}
};
Mat fast_exp(Mat m,int p)
{
Mat res;
res.a[0][0] = res.a[1][1] = res.a[2][2] = 1;
while(p)
{
if(p%2==1)
{
res = res * m;
}
m = m*m;
p/=2;
}
return res;
}
int main()
{
int t,n,x,y,z,a,b,c;
cin >> t;
while(t--)
{
cin >>x>>y>>z>>a>>b>>c>>n;
Mat res{};
res.a[0][1] = 1;
res.a[1][2] = 1;
res.a[2][0] = c;
res.a[2][1] = b;
res.a[2][2] = a;
Mat r = fast_exp(res,n-2);
cout << (r.a[2][0]*x%MOD+r.a[2][1]*y%MOD+r.a[2][2]*z%MOD)%MOD <<endl;
}
}