Pagini recente » Cod sursa (job #2224648) | Cod sursa (job #731753) | Cod sursa (job #1988041) | Cod sursa (job #1048890) | Cod sursa (job #1064828)
#include <fstream>
#define NRM 666013
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int nrt,x,y,z,n;
long long aux[3][3],m[3][3],sol[3][3];
int i,j,k;
void plog(int p);
int main()
{
f>>nrt;
m[1][0]=m[2][1]=1;
while(nrt--){
f>>x>>y>>z>>m[2][2]>>m[1][2]>>m[0][2]>>n;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
sol[i][j]=0;
for(i=0;i<3;i++)
sol[i][i]=1;
plog(n);
g<<(1LL*x*sol[0][0]+1LL*y*sol[1][0]+1LL*z*sol[2][0])%NRM<<'\n';}
f.close();
g.close();
return 0;
}
void plog(int p){
if(!p)
return;
plog(p/2);
for(i=0;i<3;i++)
for(j=0;j<3;j++){
aux[i][j]=0;
for(k=0;k<3;k++)
aux[i][j]+=sol[i][k]*sol[k][j];
aux[i][j]%=NRM;}
if(p%2){
for(i=0;i<3;i++)
for(j=0;j<3;j++){
sol[i][j]=0;
for(k=0;k<3;k++)
sol[i][j]+=aux[i][k]*m[k][j];
sol[i][j]%=NRM;}}
else{
for(i=0;i<3;i++)
for(j=0;j<3;j++)
sol[i][j]=aux[i][j];}}