Pagini recente » Cod sursa (job #1222674) | Cod sursa (job #476151) | Cod sursa (job #675144) | Cod sursa (job #973095) | Cod sursa (job #2320961)
#include <bits/stdc++.h>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
const long long mod=666013;
int t,x,y,z,a,b,c,n,i,j,k;
long long newmtr[10][10],rez[10][10],matr[10][10];
int main()
{
f>>t;
for(;t;t--)
{
f>>x>>y>>z>>a>>b>>c>>n;
memset(rez,0,sizeof(rez));
memset(matr,0,sizeof(matr));
matr[2][1]=1;rez[1][1]=1;
matr[3][2]=1;rez[2][2]=1;
matr[1][3]=c;rez[3][3]=1;
matr[2][3]=b;
matr[3][3]=a;
n-=2;
while(n)
{
memset(newmtr,0,sizeof(newmtr));
if(n&1)
{
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
for(k=1;k<=3;k++)
newmtr[i][j]=(newmtr[i][j]+rez[i][k]*matr[k][j])%mod;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
rez[i][j]=newmtr[i][j];
memset(newmtr,0,sizeof(newmtr));
}
n>>=1;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
for(k=1;k<=3;k++)
newmtr[i][j]=(newmtr[i][j]+matr[i][k]*matr[k][j])%mod;
for(i=1;i<=3;i++)
for(j=1;j<=3;j++)
matr[i][j]=newmtr[i][j];
}
// for(i=1;i<=3;i++)
// {
// for(j=1;j<=3;j++)
// g<<rez[i][j]<<' ';
// g<<'\n';
// }
g<<(x*rez[1][3]+y*rez[2][3]+z*rez[3][3])%mod<<'\n';
}
return 0;
}