Pagini recente » Cod sursa (job #2283664) | Cod sursa (job #1941034) | Cod sursa (job #845525) | Cod sursa (job #1376799) | Cod sursa (job #3158963)
#include <bits/stdc++.h>
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
const int mod = 666013;
void copie(long long a[3][3], long long b[3][3]) {
int i,j;
for ( i = 0; i <= 2; i++ )
for ( j = 0; j <= 2; j++ )
a[i][j] = b[i][j];
}
void inmultire(long long a[3][3], long long b[3][3], long long c[3][3]) {
int i,j,k;
for ( i = 0; i <= 2; i++ ) {
for ( j = 0; j <= 2; j++ ) {
c[i][j]=0;
for ( k = 0; k <= 2; k++ )
c[i][j] = c[i][j] + a[i][k] * b[k][j], c[i][j] %= mod;
}
}
}
int main()
{
long long n, x, y, z, a1, b1, c1, t;
in >> t;
for ( int i = 1; i <= t; i++ ) {
in >> x >> y >> z >> a1 >> b1 >> c1 >> n;
n = n - 2;
long long p[3][3] = {{1,0,0},{0,1,0},{0,0,1}};
long long a[3][3] = {{a1,b1,c1},{1,0,0},{0,1,0}};
long long b[3][3];
while ( n != 0 ) {
if ( n % 2 == 1 ) {
inmultire( p, a, b );
copie( p, b );
}
inmultire( a, a, b );
copie( a, b );
n = n / 2;
}
out << (z * p[0][0] + y * p[0][1] + x * p[0][2]) % mod << '\n';
}
return 0;
}