Pagini recente » Cod sursa (job #35470) | Cod sursa (job #847273) | Cod sursa (job #2118448) | Cod sursa (job #2204374) | Cod sursa (job #2593661)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("iepuri.in");
ofstream out("iepuri.out");
typedef int matrix[3][3];
void mult(matrix a,matrix b)
{
matrix c= {{0,0},{0,0}};
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
{
c[i][j]=0;
for(int k=0; k<3; k++)
c[i][j]=(int)((1LL*a[i][k]*b[k][j]+c[i][j])%666013);
}
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
a[i][j]=c[i][j];
}
void expo(matrix a,long long b)
{
matrix r= {{1,0,0},{0,1,0},{0,0,1}};
while(b!=0)
{
if(b%2)
mult(r,a);
mult(a,a);
b/=2;
}
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
a[i][j]=r[i][j];
}
int main()
{
int t;
in>>t;
for(int i=1; i<=t; i++)
{
long long n;
int a,b,c,x,y,z;
in>>x>>y>>z>>a>>b>>c>>n;
matrix p= {{0,0,c},{1,0,b},{0,1,a}};
expo(p,n);
out<<(int)((1LL*x*p[0][0]+1LL*y*p[1][0]+1LL*z*p[2][0])%666013)<<"\n";
}
return 0;
}