Pagini recente » Cod sursa (job #1118928) | Cod sursa (job #1183872)
#include <fstream>
#define MOD 666013
using namespace std;
long a[3][3],b[3][3],m[3][3],c[3][3],x0,x1,x2,t,n;
void f()
{
int i,j,k;
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
for(k=0;k<=2;k++)
{
c[i][j]=(c[i][j]+a[i][k]*b[k][j])%MOD;
}
}
}
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
a[i][j]=c[i][j];b[i][j]=c[i][j];c[i][j]=0;
}
}
if(n%2)
{
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{
for(k=0;k<=2;k++)
{
c[i][j]=(c[i][j]+m[i][k]*a[k][j])%MOD;
}
}
}
for(i=0;i<=2;i++)
{
for(j=0;j<=2;j++)
{m[i][j]=c[i][j];c[i][j]=0;}
}
}
if(n/2){n=n/2;f();}
}
int main()
{
ifstream in("iepuri.in");
ofstream out("iepuri.out");
in>>t;
while(t)
{
a[0][0]=0;a[0][1]=1;a[0][2]=0;
a[1][0]=0;a[1][1]=0;a[1][2]=1;
in>>x0>>x1>>x2>>a[2][2]>>a[2][1]>>a[2][0]>>n;
m[0][0]=1;m[0][1]=0;m[0][2]=0;
m[1][0]=0;m[1][1]=1;m[1][2]=0;
m[2][0]=0;m[2][1]=0;m[2][2]=1;
b[0][0]=1;b[0][1]=0;b[0][2]=0;
b[1][0]=0;b[1][1]=1;b[1][2]=0;
b[2][0]=0;b[2][1]=0;b[2][2]=1;
c[0][0]=0;c[0][1]=0;c[0][2]=0;
c[1][0]=0;c[1][1]=0;c[1][2]=0;
c[2][0]=0;c[2][1]=0;c[2][2]=0;
n=n-2;
f();
n=(m[2][0]*x0+m[2][1]*x1+m[2][2]*x2)%MOD;
out<<n<<"\n";
t--;
}
return 0;
}