Pagini recente » Cod sursa (job #1824052) | Cod sursa (job #2396336) | Cod sursa (job #204956) | Cod sursa (job #1287575) | Cod sursa (job #3309429)
#include <bits/stdc++.h>
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
const int MOD = 666013;
int n,a,b,c,x,y,z;
int sol[3][3];
int mat[3][3];
void imlt(int a[3][3], int b[3][3])
{
int c[3][3]= {};
for (int i=0; i<3; i++)
{
for (int j=0; j<3; j++)
{
for (int k=0; k<3; k++)
{
c[i][j]+=(1ll*a[i][k]*b[k][j])%MOD;
c[i][j]%=MOD;
}
}
}
for (int i=0; i<3; i++)
{
for (int j=0; j<3; j++)
a[i][j]=c[i][j];
}
}
int main()
{
int t;
in>>t;
while(t--)
{
in>>x>>y>>z>>a>>b>>c>>n;
mat[0][0]=0;
mat[0][1]=0;
mat[1][1]=0;
mat[2][0]=0;
mat[1][0]=1;
mat[2][1]=1;
mat[0][2]=c;
mat[1][2]=b;
mat[2][2]=a;
sol[0][0]=x;
sol[0][1]=y;
sol[0][2]=z;
while(n)
{
if(n&1)
imlt(sol,mat);
imlt(mat,mat);
n/=2;
}
out<<sol[0][0]<<"\n";
}
}