Pagini recente » Cod sursa (job #2848905) | Cod sursa (job #1249389) | Cod sursa (job #1672834) | Cod sursa (job #556360) | Cod sursa (job #1011536)
#include <iostream>
#include <fstream>
#include <cstring>
#include <string>
#include <climits>
#include <algorithm>
#include <cmath>
#include <queue>
#include <deque>
#include <iomanip>
#include <stack>
#include <cstdio>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
#define baza 10
#define MAX 1100
#define MOD 666013
void inmulteste(long long int a[][3], long long int b[][3])
{
int a00, a01, a10, a02, a11, a12, a20, a21, a22;
a00=a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0];
a01=a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1];
a02=a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2];
a10=a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0];
a11=a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1];
a12=a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2];
a20=a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0];
a21=a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1];
a22=a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2];
a[0][0]=a00%MOD;
a[0][1]=a01%MOD;
a[0][2]=a02%MOD;
a[1][0]=a10%MOD;
a[1][1]=a11%MOD;
a[1][2]=a12%MOD;
a[2][0]=a20%MOD;
a[2][1]=a21%MOD;
a[2][2]=a22%MOD;
}
void fa(long long int a[], long long int b[][3])
{
int a0, a1, a2;
a0=a[0]*b[0][0]+a[1]*b[1][0]+a[2]*b[2][0];
a1=a[0]*b[0][1]+a[1]*b[1][1]+a[2]*b[2][1];
a2=a[0]*b[0][2]+a[1]*b[1][2]+a[2]*b[2][2];
a[0]=a0%MOD;
a[1]=a1%MOD;
a[2]=a2%MOD;
}
void multiply(long long int a[][3],long long int b[][3], int n)
{
while(n)
{
if(n&1)
inmulteste(b,a);
inmulteste(a,a);
n>>=1;
}
}
long long int m[3];
long long int a[3][3], b[3][3];
int main()
{
int i, j;
int t, ki, X, Y, Z, A, B, C, N;
fin>>t;
for(ki=1;ki<=t;ki++)
{
fin>>X>>Y>>Z>>A>>B>>C>>N;
m[0]=Z;
m[1]=Y;
m[2]=X;
a[0][0]=A;
a[1][0]=B;
a[2][0]=C;
a[1][2]=a[0][1]=1;
a[0][2]=a[1][1]=a[2][1]=a[2][2]=0;
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
if(j==i)
b[i][j]=1;
else
b[i][j]=0;
}
}
multiply(a,b,N);
fa(m, b);
fout<<m[2]<<"\n";
}
return 0;
}