Pagini recente » Cod sursa (job #2839396) | Cod sursa (job #2008438) | Cod sursa (job #681108) | Cod sursa (job #232814) | Cod sursa (job #2492528)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
long long int X, Y, Z, N, a[3][3], b[3][3],aux[3][3], sol[3][1], aux2[3][1];
short int T, A, B, C, j, k, h, i;
ifstream f("iepuri.in");
f>>T;
ofstream g("iepuri.out");
for(i=1; i<=T; i++)
{
f>>X>>Y>>Z>>A>>B>>C>>N;
N-=2;
a[0][0]=A;
a[0][1]=B;
a[0][2]=C;
a[1][0]=1;
a[1][1]=0;
a[1][2]=0;
a[2][0]=0;
a[2][1]=1;
a[2][2]=0;
sol[0][0]=Z;
sol[1][0]=Y;
sol[2][0]=X;
for(j=0; j<=2; j++)
for(h=0; h<=2; h++)
{
if(j==h)
b[j][h]=1;
else
b[j][h]=0;
aux[j][h]=0;
aux2[j][0]=0;
}
while(N)
{
if(N%2==1)
{
for(j=0; j<=2; j++)
for(h=0; h<=2; h++)
for(k=0; k<=2; k++)
aux[j][h]+=b[j][k]*a[k][h];
for(j=0; j<=2; j++)
for(h=0; h<=2; h++)
{
b[j][h]=aux[j][h]%666013;
aux[j][h]=0;
}
N--;
}
for(j=0; j<=2; j++)
for(h=0; h<=2; h++)
for(k=0; k<=2; k++)
aux[j][h]+=a[j][k]*a[k][h];
for(j=0; j<=2; j++)
for(h=0; h<=2; h++)
{
a[j][h]=aux[j][h]%666013;
aux[j][h]=0;
}
N=N/2;
}
for(j=0; j<=2; j++)
for(k=0; k<=2; k++)
{
aux2[j][0]+=b[j][k]*sol[k][0];
}
aux2[0][0]=aux2[0][0]%666013;
g<<aux2[0][0]<<endl;
}
return 0;
}