Pagini recente » Cod sursa (job #813201) | Cod sursa (job #406106) | Cod sursa (job #933237) | Cod sursa (job #2338767) | Cod sursa (job #1388831)
#include <fstream>
#define MOD 666013
using namespace std;
long long a[10], x[10], aux1[10], aux2[10];
void multiply_matrix(long long *a, long long *b)
{
for(short i=1; i<=9; ++i)
{
aux1[i]=a[i];
aux2[i]=b[i];
}
a[1]=aux1[1]*aux2[1]+aux1[2]*aux2[4]+aux1[3]*aux2[7];
a[2]=aux1[1]*aux2[2]+aux1[2]*aux2[5]+aux1[3]*aux2[8];
a[3]=aux1[1]*aux2[3]+aux1[2]*aux2[6]+aux1[3]*aux2[9];
a[4]=aux1[4]*aux2[1]+aux1[5]*aux2[4]+aux1[6]*aux2[7];
a[5]=aux1[4]*aux2[2]+aux1[5]*aux2[5]+aux1[6]*aux2[8];
a[6]=aux1[4]*aux2[3]+aux1[5]*aux2[6]+aux1[6]*aux2[9];
a[7]=aux1[7]*aux2[1]+aux1[8]*aux2[4]+aux1[9]*aux2[7];
a[8]=aux1[7]*aux2[2]+aux1[8]*aux2[5]+aux1[9]*aux2[8];
a[9]=aux1[7]*aux2[3]+aux1[8]*aux2[6]+aux1[9]*aux2[9];
for(short i=1; i<=9; ++i) a[i]%=MOD;
}
int main()
{
ifstream in("iepuri.in");
ofstream out("iepuri.out");
long t, A, B, C, X, Y, Z, n, result;
in>>t;
for(short i=0; i<t; ++i)
{
in>>X>>Y>>Z>>A>>B>>C>>n;
a[1]=1; a[2]=0; a[3]=0;
a[4]=0; a[5]=1; a[6]=0;
a[7]=0; a[8]=0; a[9]=1;
x[1]=0; x[2]=0; x[3]=C;
x[4]=1; x[5]=0; x[6]=B;
x[7]=0; x[8]=1; x[9]=A;
while(n)
{
if(n%2)
multiply_matrix(a, x);
multiply_matrix(x, x);
n>>=1;
}
result=X*a[1]+Y*a[4]+Z*a[7];
result%=MOD;
out<<result<<endl;
}
in.close(); out.close();
return 0;
}