Pagini recente » Cod sursa (job #1249074) | Cod sursa (job #2716391) | Cod sursa (job #849305) | Cod sursa (job #1610127) | Cod sursa (job #1790542)
#include <fstream>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
long long cons[4][4],a[4][4],b[4][4];
void putere(int k)
{
if(k>1)
{
if(k%2==0)
{
putere(k/2);
int coordy=1;
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
{
for(int q=1;q<=3;q++)
{
b[i][coordy]+=a[i][q]*a[q][j];
b[i][coordy]%=666013;
}
coordy=coordy%3+1;
}
}
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
{
a[i][j]=b[i][j];
b[i][j]=0;
}
}
else
{
putere(k-1);
int coordy=1;
for(int i=1;i<=3;i++)
{
for(int j=1;j<=3;j++)
for(int q=1;q<=3;q++)
{
b[i][coordy]+=a[i][q]*cons[q][j];
b[i][coordy]%=666013;
coordy=coordy%3+1;
}
}
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
{
a[i][j]=b[i][j];
b[i][j]=0;
}
}
}
else
{
for(int i=1;i<=3;i++)
for(int j=1;j<=3;j++)
a[i][j]=cons[i][j];
}
}
int main()
{
int k;
fin>>k;
for(int i=1;i<=k;i++)
{
int x,y,z,a1,b,c,n;
fin>>x>>y>>z>>a1>>b>>c>>n;
cons[1][1]=a1;
cons[1][2]=1;
cons[1][3]=0;
cons[2][1]=b;
cons[2][2]=0;
cons[2][3]=1;
cons[3][1]=c;
cons[3][2]=0;
cons[3][3]=0;
putere(n-2);
fout<<(x*a[1][1]+y*a[2][1]+z*a[3][1])%666013<<"\n";
}
return 0;
}