Pagini recente » Cod sursa (job #1781668) | Cod sursa (job #1943175) | Cod sursa (job #2026871) | Cod sursa (job #987481) | Cod sursa (job #2000926)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
int n,t;//date intrare
int iepuri[4][4], produs[4][4];
void inmultire(int a[4][4], int b[4][4]){
int aux[4][4];
for(int i = 1; i <= 3; i++)
for(int j = 1; j <= 3; j++)
aux[i][j] = 0;
for(int i = 1; i <= 3; i++)
for(int j = 1; j <= 3; j++){
long long suma = 0;
for(int k = 1; k <= 3;k++)
suma += (a[i][k] * b[k][j])%666013;
aux[i][j] = suma % 666013;
}
for(int i = 1; i <= 3; i++)
for(int j = 1; j <= 3; j++)
b[i][j] = aux[i][j];
}
void rezolvare(){
while(n != 0){
if(n % 2 == 1)
inmultire(produs, iepuri);
inmultire(produs, produs);
n /= 2;
}
}
void afisare(){
out << iepuri[1][1]<<"\n";
}
void citire(){
in >> t;
for(int i = 1; i <= t; i++){
for(int i = 1; i <= 3; i++)
for(int j = 1; j <= 3; j++)
produs[i][j] = iepuri[i][j] = 0;
int x,y,z,a,b,c;
in >> x >> y >> z >> a >> b >> c >> n;
n -= 2;
iepuri[1][1] = z;
iepuri[2][1] = y;
iepuri[3][1] = x;
produs[1][1] = a;
produs[1][2] = b;
produs[1][3] = c;
produs[2][1] = 1;
produs[3][2] = 1;
rezolvare();
afisare();
}
}
int main()
{
citire();
return 0;
}