Pagini recente » Cod sursa (job #1520465) | Cod sursa (job #1924682) | Cod sursa (job #168565) | Cod sursa (job #1174319) | Cod sursa (job #2466255)
#include <iostream>
#include <fstream>
#define MOD 666013
using namespace std;
int x,y,z;
void afisare(int a[4][4])
{
for (int i=1;i<=3;i++)
{
for (int j=1;j<=3;j++)
cout<<a[i][j]<<' ';
cout<<'\n';
}
cout<<'\n';
}
void multire(int a[4][4],int b[4][4])
{
int c[4][4];
for (int i=1;i<=3;i++)
for (int j=1;j<=3;j++)
c[i][j]=0;
for (int i=1; i<=3; i++)
for (int j=1; j<=3; j++)
for (int k=1; k<=3; k++)
c[i][j]=(c[i][j]+a[i][k]*b[k][j])%MOD;
for (int i=1;i<=3;i++)
for (int j=1;j<=3;j++)
a[i][j]=c[i][j];
}
void putere(int a[4][4],int put)
{
/*for (int i=1;i<put;i++)
multire(a, a);
return;*/
int b[4][4];
b[1][1]=x;
b[1][2]=y;
b[1][3]=z;
b[2][1]=1;
b[3][2]=1;
b[2][2]=b[2][3]=b[3][1]=b[3][3]=0;
while(put)
{
if(put%2)
{
multire(b, a);
put--;
}
else
{
multire(a,a);
put/=2;
}
}
for(int i = 1; i <= 3; ++i)
for(int j = 1; j <= 3; ++j)
a[i][j] = b[i][j];
}
int main()
{
ifstream fin ("iepuri.in");
ofstream fout ("iepuri.out");
int m;
fin>>m;
for (int q=0;q<m;q++)
{
int a,b,c,n,m1[4][4],m2[4][4];
fin>>a>>b>>c>>x>>y>>z>>n;
m1[1][1]=x;
m1[1][2]=y;
m1[1][3]=z;
m1[2][1]=1;
m1[3][2]=1;
m1[2][2]=m1[2][3]=m1[3][1]=m1[3][3]=0;
/*m2[1][1]=c;
m2[2][1]=b;
m2[3][1]=a;
m2[1][2]=m2[1][3]=m2[2][2]=m2[2][3]=m2[3][2]=m2[3][3]=0;*/
putere(m1, n-1);
int rasp=0;
//afisare(m1);
rasp=(rasp+(m1[3][1]*c)%MOD)%MOD;
rasp=(rasp+(m1[3][2]*b)%MOD)%MOD;
rasp=(rasp+(m1[3][3]*a)%MOD)%MOD;
fout<<rasp<<"\n";
}
return 0;
}