Pagini recente » Cod sursa (job #345057) | Cod sursa (job #1566284) | Cod sursa (job #2382185) | Cod sursa (job #1180826) | Cod sursa (job #1346039)
#include <fstream>
#define MOD 666013
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int T, n, X, Y, Z, a, b, c;
void cpy(long long a[3][3], long long b[3][3]){
for(int i = 0; i <= 2; i ++)
for(int j = 0; j <= 2; j ++)
a[i][j] = b[i][j];
}
void multiply(long long A[3][3], long long B[3][3], long long C[3][3]){
for(int i = 0; i <= 2; i ++)
for(int j = 0; j <= 2; j ++){
C[i][j] = 0;
for(int k = 0; k <= 2; k ++)
{
C[i][j] += A[i][k] * B[k][j];
C[i][j] %= MOD;
}
}
}
int main()
{
fin >> T;
for(int i2 = 1; i2 <= T; i2 ++){
fin >> X >> Y >> Z >> a >> b >> c >> n;
long long A[3][3] = { {a, b, c} , {1, 0, 0}, {0, 1, 0} };
long long r[3][3] = { {1, 0, 0} , {0, 1, 0}, {0, 0, 1} };
long long B[3][3];
n -= 2;
while(n){
if(n % 2 != 0)
{
multiply(r, A, B);
cpy(r,B);
}
multiply(A,A,B);
cpy(A,B);
n /= 2;
}
fout << r[0][0] * Z + r[0][1] * Y + r[0][2] * X << '\n';
}
return 0;
}