Pagini recente » Cod sursa (job #810961) | Cod sursa (job #2491803) | Cod sursa (job #2665922) | Cod sursa (job #688500) | Cod sursa (job #2591975)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("iepuri.in");
ofstream g("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;
f>>t;
for(int i=1; i<=t; i++)
{
long long n;
int a,b,c,x,y,z;
f>>x>>y>>z>>a>>b>>c>>n;
matrix p= {{0,0,c},{1,0,b},{0,1,a}};
expo(p,n);
g<<(int)((x*p[0][0]+y*p[1][0]+z*p[2][0])%666013)<<"\n";
}
return 0;
}