Pagini recente » Cod sursa (job #777756) | Cod sursa (job #905532) | Cod sursa (job #1729923) | Cod sursa (job #893177) | Cod sursa (job #3264229)
#include <bits/stdc++.h>
#define VMAX 1000000
#define NMAX 100000
#define LOG 20
#define INF (long long)(1e9)
#define MOD 666013
#define BASE 23
#define BLOCK_SIZE 230
#define ll long long int
#define EPS 0.02
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
int X,Y,Z,A,B,C;
int I3[3][3] = {{1,0,0},{0,1,0},{0,0,1}};
void cpy(int a[3][3],int b[3][3])
{
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
a[i][j] = b[i][j];
}
}
}
void mult(int a[3][3],int b[3][3])
{
int c[3][3] = {0};
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
for(int k=0;k<3;k++)
{
c[i][j] += a[i][k] *1ll* b[k][j]%MOD;
c[i][j] %= MOD;
}
}
}
cpy(a,c);
}
void pwr(int a[3][3],int b)
{
if(b==0)
{
cpy(a,I3);
return;
}
int c[3][3];
cpy(c,a);
pwr(c,b/2);
mult(c,c);
if(b%2)
{
mult(c,a);
}
cpy(a,c);
}
int main()
{
int T;
fin >> T;
while(T--)
{
int n;
fin >> X >> Y >> Z >> A >> B >> C >> n;
int a[3][3] = {0};
a[0][0]=A;
a[1][0]=B;
a[2][0]=C;
a[0][1]=a[1][2]=1;
pwr(a,n-2);
int res= (a[0][0]*1ll*Z%MOD + a[1][0]*1ll*Y%MOD + a[2][0]*1ll*X%MOD)%MOD;
fout << res << '\n';
}
}