Pagini recente » Cod sursa (job #1021154) | Cod sursa (job #2526101) | Cod sursa (job #1467125)
# include <bits/stdc++.h>
using namespace std;
const int mod = 666013;
ifstream fi("iepuri.in");
ofstream fo("iepuri.out");
int s[3][3];
void mult(int a[3][3],int b[3][3],int c[3][3])
{
for (int i = 0;i < 3;++i)
for (int j = 0;j < 3;++j) c[i][j] = 0;
for (int i = 0;i < 3;++i)
for (int j = 0;j < 3;++j)
for (int k = 0;k < 3;++k)
c[i][j] += (1ll * a[i][k] * b[k][j]) % mod,c[i][j] %= mod;
}
void pw(int n)
{
--n;
int ans[3][3],c[3][3];
for (int i = 0;i < 3;++i)
for (int j = 0;j < 3;++j) ans[i][j] = s[i][j];
while (n)
{
if (n&1)
{
mult(ans,s,c);
for (int i = 0;i < 3;++i)
for (int j = 0;j < 3;++j) ans[i][j] = c[i][j];
}
mult(s,s,c);
for (int i = 0;i < 3;++i)
for (int j = 0;j < 3;++j) s[i][j] = c[i][j];
n >>= 1;
}
for (int i = 0;i < 3;++i)
for (int j = 0;j < 3;++j) s[i][j] = ans[i][j];
}
int main(void)
{
int t;
fi>>t;
int x,y,z,a,b,c,n;
while (t --)
{
fi>>x>>y>>z>>a>>b>>c>>n;
s[0][0] = 0;
s[0][1] = 1;
s[0][2] = 0;
s[1][0] = 0;
s[1][1] = 0;
s[1][2] = 1;
s[2][0] = c;
s[2][1] = b;
s[2][2] = a;
pw(n);
fo << (1ll * s[0][0] * x + 1ll * y * s[0][1] + 1ll * z * s[0][2]) % mod << '\n',0;
}
return 0;
}