Pagini recente » Cod sursa (job #1880047) | Cod sursa (job #2150259) | Cod sursa (job #2597154) | Cod sursa (job #1629741) | Cod sursa (job #1516946)
# include <bits/stdc++.h>
using namespace std;
struct matrice {
int n,m;
long long a[5][5];
matrice () {
for (int i=1;i<5;++i)
for (int j=1;j<5;j++) a[i][j] = 0;
}
} init, M;
int tests;
int n;
int A, B, C, X , Y , Z;
const int MOD = 666013;
ifstream fi("iepuri.in");
ofstream fo("iepuri.out");
matrice mult(matrice A, matrice B) {
matrice C;
C.n = A.n; C.m = B.m;
for (int i=1;i<=C.n;++i)
for (int j=1;j<=C.m;j++) {
C.a[i][j] = 0;
for (int k=1;k<=A.m;k++)
{
C.a[i][j] += A.a[i][k] * B.a[k][j];
C.a[i][i] %= MOD;
}
}
return C;
}
matrice pow(matrice M, int n)
{
if (n==1) return M;
if (n & 1) return mult(pow(M, n-1), M);
matrice Aux = pow(M, n/2);
return mult(Aux, Aux);
}
int main()
{
fi >> tests;
while (tests--) {
fi >> X >> Y >> Z >> A >> B >> C >> n;
init.n = 1; init.m = 3;
init.a[1][1] = X; init.a[1][2] = Y; init.a[1][3] = Z;
M.n = M.m = 3;
M.a[2][1] = M.a[3][2] = 1;
M.a[1][3] = C; M.a[2][3] = B; M.a[3][3] = A;
matrice CS = pow(M,n);
CS = mult(init, CS);
fo << CS.a[1][1] << "\n";
}
return 0;
}