Pagini recente » Cod sursa (job #639642) | Cod sursa (job #1537169) | Cod sursa (job #912338) | Cod sursa (job #801773) | Cod sursa (job #2553254)
#include <fstream>
#define modulo 666013
using namespace std;
ifstream fin ("iepuri.in");
ofstream fout ("iepuri.out");
int t, x, y, z, a, b, c, aj[5][5], r[2][5], n, rez, aux[5][5];
void RPTLG (int aj[5][5], int exp)
{
int i, k, j, f;
for (i=1; i<=3; i++)
{
for (j=1; j<=3; j++)
{
if (i==j)
r[i][j]=1;
else
r[i][j]=0;
}
}
for (i=0; (1<<i)<=exp; i++)
{
if (((1<<i)&exp) > 0)
{
for (k=1; k<=3; k++)
{
for (j=1; j<=3; j++)
{
aux[k][j]=0;
for (f=1; f<=3; f++)
{
aux[k][j]=(aux[k][j]+(aj[k][f]*r[f][j])%modulo)%modulo;
}
}
}
for (k=1; k<=3; k++)
{
for (j=1; j<=3; j++)
{
r[k][j]=aux[k][j];
}
}
}
for (k=1; k<=3; k++)
{
for (j=1; j<=3; j++)
{
aux[k][j]=0;
for (f=1; f<=3; f++)
{
aux[k][j]=(aux[k][j]+(aj[k][f]*aj[f][j])%modulo)%modulo;
}
}
}
for (k=1; k<=3; k++)
{
for (j=1; j<=3; j++)
{
aj[k][j]=aux[k][j];
}
}
}
}
int main()
{
int p;
fin>>t;
for (p=1; p<=t; p++)
{
fin>>x>>y>>z>>a>>b>>c>>n;
if (n>=3)
{
aj[1][1]=0;
aj[2][1]=1;
aj[3][1]=0;
aj[1][2]=0;
aj[2][2]=0;
aj[3][2]=1;
aj[1][3]=c;
aj[2][3]=b;
aj[3][3]=a;
///ridicam matricea aj la puterea n-2
RPTLG(aj, n-2);
rez=((x*r[1][3])%modulo+(y*r[2][3])%modulo+(z*r[3][3])%modulo)%modulo;
fout<<rez<<"\n";
}
else
{
if (n==0)
fout<<x<<"\n";
else
{
if (n==1)
fout<<y<<"\n";
else
{
fout<<z<<"\n";
}
}
}
}
fin.close();
fout.close();
return 0;
}