Pagini recente » Cod sursa (job #403522) | Cod sursa (job #1327156) | Cod sursa (job #380642) | Cod sursa (job #1127342) | Cod sursa (job #2436241)
#include <bits/stdc++.h>
#define MOD 666013
using namespace std;
typedef vector<vector<long long>> matrix;
matrix prod( matrix A, matrix B ) {
matrix C(3,vector<long long>(3));
for( int i = 0; i < 3; i ++ )
for( int j = 0; j < 3; j ++ )
for( int k = 0; k < 3; k ++ )
C[i][j] = ( C[i][j] + A[i][k] * B[k][j] % MOD ) % MOD;
return C;
}
matrix lgput( matrix A, long long n ) {
if( n == 1 )
return A;
if( n % 2 == 0 )
return lgput(prod(A,A), n / 2);
return prod(A,lgput(A, n - 1));
}
int main() {
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
long long t, n, a, b, c, x, y, z;
fin>>t;
while ( t -- ) {
fin>>x>>y>>z>>a>>b>>c>>n;
matrix A(3,vector<long long>(3));
n = n - 2;
A[0][0] = A[0][2] = A[1][0] = A[1][1] = 0;
A[0][1] = A[1][2] = 1;
A[2][0] = c;
A[2][1] = b;
A[2][2] = a;
vector<long long> v = {x,y,z};
A = lgput(A,n);
long long ans = 0;
for( int i = 0; i < 3; i ++ )
ans = (ans + A[2][i] * v[i] % MOD) % MOD;
fout<<ans<<"\n";
}
return 0;
}