Pagini recente » Cod sursa (job #2037813) | Cod sursa (job #957110) | Cod sursa (job #2490798) | Cod sursa (job #1838379) | Cod sursa (job #2892261)
#include <bits/stdc++.h>
#define ull unsigned long long
#define FILES freopen("iepuri.in","r",stdin);\
freopen("iepuri.out","w",stdout);
#define CMAX 15485863
#define fastio std::ios_base::sync_with_stdio(NULL),cin.tie(NULL),cout.tie(NULL);
#define mp make_pair
#define INF 1e18
#define mod 666013
#define ll long long
#define SMAX 300
#define MAX 10
#define pb push_back
#define add emplace_back
#define void inline void
#define int ll
using namespace std;
int x,y,z,a,b,c,n,t, dp[MAX+5][MAX+5], dp2[MAX+5][MAX+5];
void Multiply(int A[MAX+5][MAX+5], int B[MAX+5][MAX+5])
{
int new_dp[MAX+5][MAX+5] = {0};
for(int i = 1;i <= 3; ++i)
{
for(int j = 1;j <= 3; ++j)
{
for(int k = 1;k <= 3; ++k)
new_dp[i][j] = (new_dp[i][j] + B[k][j] * A[i][k]) % mod;
}
}
for(int i = 1;i <= 3; ++i)
for(int j = 1;j <= 3; ++j) A[i][j] = new_dp[i][j];
}
int faxexp(int exp)
{
while(exp)
{
if(exp & 1)
Multiply(dp,dp2);
Multiply(dp2,dp2);
exp >>= 1;
}
}
signed main()
{
fastio
FILES
cin >> t;
while(t--)
{
for(int i = 1;i <= 3; ++i)
for(int j = 1;j <= 3; ++j)
dp[i][j] = dp2[i][j] = 0;
cin >> x >> y >> z >> a >> b >> c >> n;
dp2[1][3] = c, dp2[2][3] = b, dp2[3][3] = a;
dp2[2][1] = dp2[3][2] = 1;
dp[1][1] = x, dp[1][2] = y, dp[1][3] = z;
n -= 2;
faxexp(n);
cout << dp[1][3] << '\n';
}
}