Pagini recente » Cod sursa (job #2574431) | Cod sursa (job #2784735) | Cod sursa (job #3293795) | Cod sursa (job #1572755) | Cod sursa (job #2265277)
#include <iostream>
#include <fstream>
#define MOD 666013
#include <string.h>
std::ifstream in("iepuri.in");
std::ofstream out("iepuri.out");
using namespace std;
struct mat
{
long long a[5][5];
};
mat inm(mat A, mat b)
{
mat c;
memset(c.a,0,sizeof(c.a));
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
for(int k=0; k<3; k++)
{
c.a[i][j]=(c.a[i][j]+(A.a[i][k]*b.a[k][j]))%MOD;
}
}
}
return c;
}
mat lgput(mat a,int p)
{
mat r;
memset(r.a,0,sizeof(r.a));
for(int i=0;i<3;i++)
{
r.a[i][i]=1;
}
while(p)
{
if(p&1)
{
r=inm(r,a);
}
a=inm(a,a);
p/=2;
}
return r;
}
int x,y,z,a,b,c,n;
mat prim,sec,C;
int main()///g1=( f[x]f[y]f[z])
{
short nn;
in>>nn;
for(int i=0; i<nn; i++)
{
in>>x>>y>>z>>a>>b>>c>>n;
memset(C.a,0,sizeof(C.a));
prim.a[0][1]=1;
prim.a[1][2]=1;
prim.a[2][0]=c;
prim.a[2][1]=b;
prim.a[2][2]=a;
sec.a[0][0]=x;
sec.a[1][0]=y;
sec.a[2][0]=z;
C=lgput(prim,n-2);
C=inm(C,sec);
out<<C.a[2][0]<<"\n";
}
return 0;
}