Pagini recente » Cod sursa (job #77698) | Cod sursa (job #1700646) | Cod sursa (job #1383641) | Cod sursa (job #1058242) | Cod sursa (job #2765066)
#include <bits/stdc++.h>
#define mod 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int test;
int X,Y,Z,A,B,C,n;
int a[5][5],b[5][5],c[5][5];
int nul[5][5];
void copiere(int a[5][5],int b[5][5])
{
for(int i = 1; i <= 3; i++)
for(int j = 1; j <= 3; j++)
a[i][j] = b[i][j];
}
void inmultire(int a[5][5], int b[5][5])
{
int ajut[5][5];
long long s;
for(int i = 1; i <= 3; i++)
for(int j = 1; j <= 3; j++)
{
s = 0;
for(int k = 1; k <= 3; k++)
s += 1LL*(a[i][k] * b[k][j]);
ajut[i][j] = s%mod;
}
copiere(a,ajut);
}
void putere(int a[5][5], int p)
{
while(p)
{
if(p & 1)
{
p--;
inmultire(c,a);
}
p/=2;
inmultire(a,a);
}
copiere(a,c);
}
int main()
{
f >> test;
for(int t=1; t<=test;++t)
{
f >> X >> Y >> Z >> A >> B >> C >> n;
copiere(a,nul);
copiere(b,nul);
copiere(c,nul);
c[1][1] = c[2][2] = c[3][3] = 1;
b[2][1] = b[3][2] = 1;
b[1][3] = C, b[2][3] = B, b[3][3] = A;
a[1][1] = X, a[1][2] = Y, a[1][3] = Z;
putere(b,n-2);
inmultire(a,b);
g << a[1][3] << "\n";
}
return 0;
}