Pagini recente » Cod sursa (job #2540931) | Cod sursa (job #1828482) | Cod sursa (job #680090) | Cod sursa (job #1520329) | Cod sursa (job #1387740)
#include <fstream>
const int mod=666013;
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int x,y,z,a,b,c,n,t,mod;
int p[4][4];
void fct(int a[][4],int e)
{
int aux[4][4],i,j,k;
while(e)
{
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
p[i][j]=0;
for(i=1; i<=3; i++)
p[i][i]=1;
if(e&1)
{
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
aux[i][j]=0;
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
for(k=1; k<=3; k++)
aux[i][j]+=(1LL*p[i][k]*a[k][j])%mod;
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
p[i][j]=aux[i][j]%mod;
}
e>>=1;
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
aux[i][j]=0;
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
for(k=1; k<=3; k++)
aux[i][j]+=(1LL*p[i][k]*a[k][j])%mod;
for(i=1; i<=3; i++)
for(j=1; j<=3; j++)
a[i][j]=aux[i][j]%mod;
}
}
int main()
{
f>>t;
for(i=1; i<=t; i++)
{
f>>x>>y>>a>>b>>c>>n>>t;
int m[4][4];
memset(m,0,sizeof(m));
m[2][1]=1;
m[3][2]=1;
m[1][3]=a;
m[2][3]=b;
m[3][3]=c;
if(n-2<=0)
{
if(n==0)
g<<x;
else if(n==1)
g<<y;
else if(n==2)
g<<z;
g<<'\n';
}
else
{
fct(m,n-2);
g<<(1LL*x*p[1][3]+1LL*y*p[2][3]+1LL*z*p[3][3])%mod<<'\n';
}
}
return 0;
f.close();
g.close();
}