Pagini recente » Cod sursa (job #1105852) | Cod sursa (job #708876) | Cod sursa (job #2236291) | Cod sursa (job #724924) | Cod sursa (job #1753887)
#include <iostream>
#include <fstream>
#define MOD 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
void rezolva();
void matrixPower(unsigned long long a[3][3],unsigned long long b[3][3],unsigned long long aux[3][3]);
int main()
{
int t;
f >> t;
for(int i=0;i<t;i++) rezolva();
return 0;
}
void rezolva(){
unsigned long long x,y,z,a,b,c,n;
f >> x >> y >> z >> a >> b >> c >> n;
unsigned long long A[3][3] = {{a,b,c},{1,0,0},{0,1,0}};
unsigned long long unit[3][3] = {{1,0,0},{0,1,0},{0,0,1}};
unsigned long long aux[3][3];
for(n=n-2;n;n>>=1){
if(n%2)
matrixPower(unit,A,aux);
matrixPower(A,A,aux);
}
g << (unit[0][0] * z + unit[0][1] * y + unit[0][2] * x) % MOD << '\n';
}
void matrixPower(unsigned long long a[3][3],unsigned long long b[3][3],unsigned long long aux[3][3]){
for(int i=0;i<3;i++)
for(int j=0;j<3;j++){
aux[i][j]=0;
for(int k=0;k<3;k++)
aux[i][j]= (aux[i][j] + a[i][k] * b[k][j]) % MOD;
}
for(int i=0;i<3;i++)
for(int j=0;j<3;j++)
a[i][j]=aux[i][j];
}