Pagini recente » Cod sursa (job #2890763) | Cod sursa (job #2563537) | Cod sursa (job #948825) | Cod sursa (job #1374379) | Cod sursa (job #1794044)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int MOD = 666013;
void copiere(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]){
long long 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] += a[i][k] * b[k][j];
c[i][j] %= MOD;
}
}
}
long long a[3][3], i3[3][3], t[3][3];
void ridicare(long long a[3][3], long long n){
int i,j;
if(n){
if(n % 2 == 1){
inmultire(i3, a, t);
copiere(i3, t);
ridicare(a, n-1);
} else {
inmultire(a, a, t);
copiere(a, t);
ridicare(a, n/2);
}
}
}
int main()
{
long long T, X, Y, Z, A, B, C, N, i, j, ii, aux;
fin>>T;
for (ii = 1; ii <= T; ++ii){
fin>>X>>Y>>Z>>A>>B>>C>>N;
N -= 2;
a[0][0] = A;
a[0][1] = B;
a[0][2] = C;
a[1][0] = 1;
a[1][1] = 0;
a[1][2] = 0;
a[2][0] = 0;
a[2][1] = 1;
a[2][2] = 0;
i3[0][0] = 1;
i3[0][1] = 0;
i3[0][2] = 0;
i3[1][0] = 0;
i3[1][1] = 1;
i3[1][2] = 0;
i3[2][0] = 0;
i3[2][1] = 0;
i3[2][2] = 1;
while (N > 0) {
if (N % 2 == 1) {
inmultire(i3, a, t);
copiere(i3, t);
}
inmultire(a, a, t);
copiere(a, t);
N /= 2;
}
fout<<(i3[0][0] * Z + i3[0][1] * Y + i3[0][2] * X) % MOD<<"\n";
}
return 0;
}