Pagini recente » Cod sursa (job #2374517) | Cod sursa (job #1378257) | Cod sursa (job #367213) | Cod sursa (job #247126) | Cod sursa (job #3176460)
#include <bits/stdc++.h>
using namespace std;
const int MOD=666013;
#define int long long
vector<vector<int>> mul(vector<vector<int>> A, vector<vector<int>> B)
{
vector<vector<int>> ans(A.size(), vector<int>(B[0].size(), 0));
for(int i=0; i<ans.size(); i++)
for(int j=0; j<ans[i].size(); j++)
for(int k=0; k<B.size(); k++)
ans[i][j]=(ans[i][j]+A[i][k]*B[k][j])%MOD;
return ans;
}
vector<vector<int>> IDN(3, vector<int>(3, 0));
vector<vector<int>> matpow(vector<vector<int>> A, int exp)
{
vector<vector<int>> rez=IDN;
while(exp)
{
if(exp&1)
rez=mul(rez, A);
A=mul(A, A);
exp>>=1;
}
return rez;
}
signed main()
{
freopen("iepuri.in", "r", stdin);
freopen("iepuri.out", "w", stdout);
IDN[0][0]=IDN[1][1]=IDN[2][2]=1;
int tc;
cin>>tc;
while(tc--)
{
int a, b, c, st1, st2, st3, k;
cin>>a>>b>>c>>st1>>st2>>st3>>k;
vector<vector<int>> T(3, vector<int>(3, 0));
T[0][0]=a;
T[0][1]=b;
T[0][2]=c;
T[1][0]=T[2][1]=1;
T=matpow(T, k);
vector<vector<int>> ST(3, vector<int>(1, 0));
ST[0][0]=st1;
ST[1][0]=st2;
ST[2][0]=st3;
ST=mul(T, ST);
cout<<ST[2][0]<<'\n';
}
return 0;
}