Pagini recente » Cod sursa (job #3174885) | Cod sursa (job #1492728) | Cod sursa (job #1054018) | Cod sursa (job #368966) | Cod sursa (job #1597398)
#include <fstream>
#include <cstring>
#define MOD 666013
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
long long int A[3][3];
long long int B[3][3];
long long int P[3][3];
int t,i,j,k,l,x,y,z,a,b,c,n;
void produs(long long int x[3][3], long long int y[3][3])
{
long long int z[3][3];
memset(z, 0, sizeof(z));
for (int i=0;i<3;i++)
for (int j=0;j<3;j++)
for (int k=0;k<3;k++)
z[i][j]+=x[i][k]*y[k][j]%MOD;
for (int i=0;i<3;i++)
for (int j=0;j<3;j++)
x[i][j]=z[i][j];
}
int main()
{
fin>>t;
for (i=1;i<=t;i++)
{
fin>>x>>y>>z>>a>>b>>c>>n;
memset(P, 0, sizeof(P));
P[0][0]=x;
P[0][1]=y;
P[0][2]=z;
memset(A, 0, sizeof(A));
A[0][2]=c;
A[1][2]=b;
A[2][2]=a;
A[1][0]=1;
A[2][1]=1;
memset(B, 0, sizeof(B));
B[0][0]=1;
B[1][1]=1;
B[2][2]=1;
n-=2;
while (n)
{
if (n%2==0)
{
n/=2;
produs(A,A);
}
else
{
n--;
produs(B,A);
}
}
produs(A,B);
produs(P,A);
fout<<P[0][0]<<"\n";
}
return 0;
}