Pagini recente » Cod sursa (job #584683) | Cod sursa (job #2968720) | Cod sursa (job #8489) | Cod sursa (job #3184751) | Cod sursa (job #2066207)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
const int mod=666013;
int a,b,c,x,y,z;
void inm( int x[][3], int y[][3])
{
long long z[3][3];
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
{
z[i][j]=0;
for(int k=0; k<3; k++)
z[i][j]+=1LL*x[i][k]*y[k][j];
}
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
x[i][j]=z[i][j]%mod;
}
int powmat(int k)
{
int p[3][3]= {{1,0,0},{0,1,0},{0,0,1}};
int m[3][3]= {{a,1,0},{b,0,1},{c,0,0}};
while(k>0)
{
if(k%2==0)
{
inm(m,m);
k/=2;
}
else
{
inm(p,m);
k--;
}
}
return (z*p[0][0]+y*p[1][0]+x*p[2][0])%mod;
}
int main()
{
int n,T;
f>>T;
while(T--)
{
f>>x>>y>>z>>a>>b>>c>>n;
g<<powmat(n-2)<<'\n';
}
}