Pagini recente » Cod sursa (job #2895215) | Cod sursa (job #1402709) | Cod sursa (job #468321) | Cod sursa (job #310656) | Cod sursa (job #854221)
Cod sursa(job #854221)
#include<cstdio>
#include<cstdlib>
#define MOD 666013
using namespace std;
int fin[3][3],matrice[3][3];
void inmultire(int fin[][3],int matrice[][3])
{
int intermediar[3][3];
for(int i=0;i<3;++i)
for(int j=0; j<3;++j)
intermediar[i][j]=0;
for(int i=0;i<3;++i)
for(int j=0;j<3;++j)
for(int k=0;k<3;++k)
intermediar[i][j]=(intermediar[i][j]+1ll*fin[i][k]*matrice[k][j])%MOD;
for(int i=0;i<=2;++i)
for(int j=0;j<=2;++j)
fin[i][j]=intermediar[i][j];
}
void exponent(int fin[][3],int p)
{
while(p)
{
if(p&1)
{
inmultire(fin,matrice);
}
p/=2;
inmultire(matrice,matrice);
}
}
int main()
{
int a,b,c,x,y,z,n,nr;
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
scanf("%d",&nr);
while(nr)
{
scanf("%d%d%d%d%d%d%d",&x,&y,&z,&a,&b,&c,&n);
for(int i=0;i<=2;++i)
for(int j=0;j<=2;++j)
if(i==j)
fin[i][j]=1;
else
fin[i][j]=0;
matrice[0][0]=a;
matrice[0][1]=b;
matrice[0][2]=c;
matrice[1][0]=1;
matrice[1][1]=0;
matrice[1][2]=0;
matrice[2][0]=0;
matrice[2][1]=1;
matrice[2][2]=0;
exponent(fin,n-2);
int raspuns=(1ll*fin[0][0]*z%MOD+1ll*fin[0][1]*y%MOD+1ll*fin[0][2]*x%MOD)%MOD;
printf("%d\n",raspuns);
nr--;
}
return 0;
}