Pagini recente » Cod sursa (job #3190948) | Cod sursa (job #495040) | Cod sursa (job #2004081) | Cod sursa (job #1440819) | Cod sursa (job #1629883)
#include <iostream>
#include <fstream>
#include <cstring>
using namespace std;
#define ll long long
#define mod 666013
ifstream f("iepuri.in");
ofstream g("iepuri.out");
ll T ;
ll A , B , C , X , Y , Z , N;
ll x[4][4] , a[4][4] , sol[4][4];
void inmultire ( ll a[4][4] , ll b[4][4] )
{
ll c[4][4];
for ( int i = 1; i <= 3; i++ )
for ( int j = 1; j <= 3; j++ )
{
c[i][j] = 0;
for ( int d = 1 ; d <= 3; d++ )
c[i][j] = c[i][j] + a[i][d]*b[d][j] ;
}
for ( int i = 1; i <= 3 ; i++ )
for ( int j = 1; j <= 3; j++ )
a[i][j] = c[i][j] % mod;
}
void exp_log ( int k )
{
while ( k )
{
if ( k % 2 == 1 )
{
inmultire(a,x);
k--;
}
else{
k/=2;
inmultire(x,x);
}
}
g << a[1][3] << "\n" ;
}
int main()
{
f >> T;
for ( ; T-- ; )
{
f >> X >> Y >> Z >> A >> B >> C >> N;
memset(a,0,sizeof a);
a[1][1] = X;
a[1][2] = Y;
a[1][3] = Z;
//
memset(x,0,sizeof x);
x[1][3] = C;
x[2][1] = 1;
x[3][2] = 1;
x[2][3] = B;
x[3][3] = A;
//
N-=2;
exp_log(N);
}
return 0;
}