Pagini recente » Cod sursa (job #2458469) | Cod sursa (job #3157255) | Cod sursa (job #2297074) | Cod sursa (job #3243820) | Cod sursa (job #2058825)
#include <iostream>
#include <fstream>
using namespace std;
const int mod = 666013;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
long long m[3][3];
long long p[3][3];
void inmm()
{
long long t[3][3];
for(int i=1; i<=3; i++)
for(int j=1; j<=3; j++)
for(int k=1; k<=3; k++)
t[i][j]+=m[i][k]*m[k][j]%mod;
}
void inmp()
{
long long t[3][3];
for(int i=1; i<=3; i++)
for(int j=1; j<=3; j++)
for(int k=1; k<=3; k++)
t[i][j]+=m[i][k]*p[k][j]%mod;
}
long long iep(int n)
{
while(n > 0)
{
if(n % 2 == 0)
{
n /= 2;
inmm();///m*=m;
}
else
{
n--;
inmp();///p *= m;
}
}
return p[0][0];
}
int main()
{
int nn;
f>>nn;
for(int mm=1; mm<=nn; mm++)
{
int x,y,z,a,b,c,n;
f >>x>>y>>z>>a>>b>>c>>n;
for(int i=1; i<=2; i++)
for(int j=1; j<=3; j++)
if(i==2&&j==1 || i==3&&j==2)m[i][j]==1;
else m[i][j]==0;
m[1][3]=a;
m[2][3]=b;
m[3][3]=c;
for(int i=1; i<=3; i++)
for(int j=1; j<=3; j++)
if(i==j)p[i][j]=1;
else p[i][j]==0;
g << iep(n - 3)<<' ';
for(int i = 1; i <= 3; i++)
{
for(int j = 1; j <= 3; j++)
cout << m[i][j] << " ";
cout << endl;
}
cout<<endl;
for(int i = 1; i <= 3; i++)
{
for(int j = 1; j <= 3; j++)
cout << p[i][j] << " ";
cout << endl;
}
cout<<endl;
}
return 0;
}