Pagini recente » Cod sursa (job #2594403) | Cod sursa (job #2854962) | Cod sursa (job #2737483) | Cod sursa (job #2900593) | Cod sursa (job #2483481)
#include <bits/stdc++.h>
#define mod 666013
#define ll long long
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
ll t,X,Y,Z,A,B,C,n;
ll fib[3][3], ans[3][3];
void inm(ll a[3][3], ll b[3][3])
{
ll rez[3][3];
memset(rez,0,sizeof(rez));
for(int i = 0; i <= 2; ++i)
for(int j = 0; j <= 2; ++j)
for(int k = 0; k <= 2; ++k)
{
rez[i][j] += a[i][k] * b[k][j];
rez[i][j] %= mod;
}
for(int i = 0; i <= 2; ++i)
for(int j = 0; j <= 2; ++j)
a[i][j] = rez[i][j];
}
void logpow(ll b)
{
while(b)
{
if(b & 1)
inm(ans, fib);
b >>= 1;
inm(fib,fib);
}
}
int main()
{
f >> t;
while(t--)
{
f >> X >> Y >> Z >> A >> B >> C >> n;
memset(ans,0,sizeof(ans));
memset(fib,0,sizeof(fib));
ans[0][0] = 1; ans[1][1] = 1; ans[2][2] = 1;
fib[1][0] = fib[2][1] = 1; fib[0][2] = C; fib[1][2] = B; fib[2][2] = A;
logpow(n);
g <<( X * ans[0][0] + Y * ans[1][0] + Z * ans[2][0] ) % mod << '\n';
}
f.close(); g.close();
return 0;
}