Pagini recente » Cod sursa (job #738428) | Cod sursa (job #478772) | Cod sursa (job #2669621) | Cod sursa (job #837689) | Cod sursa (job #2665685)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("iepuri.in");
ofstream fout("iepuri.out");
const int MOD=666013;
int x,y,z,A,B,C,n;
struct Mat{
int mat[3][3]={0};
}M;
Mat inmultime(Mat a,Mat b)
{
Mat rez;
int i,j,x;
for(i=0;i<3;i++) {
for(j=0;j<3;j++) {
rez.mat[i][j] = 0;
for(x=0;x<3;x++) {
rez.mat[i][j] += (1LL*a.mat[i][x]*b.mat[x][j])%MOD;
}
}
}
return rez;
}
Mat putere(Mat a,int e)
{
Mat rez;
for(int i=0;i<3;i++)
rez.mat[i][i]=1;
while(e)
{
if(e%2==1)
rez=inmultime(rez,a);
a=inmultime(a,a);
e=e/2;
}
return rez;
}
void print(Mat a)
{
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
cout<<a.mat[i][j]<<" ";
cout<<"\n";
}
}
void read()
{
int t;
fin>>t;
while(t)
{
fin>>x>>y>>z>>A>>B>>C>>n;
M.mat[0][2]=C;
M.mat[1][0]=1;
M.mat[1][2]=B;
M.mat[2][1]=1;
M.mat[2][2]=A;
Mat X=putere(M,n-2);
fout<<X.mat[0][2]*x+X.mat[1][2]*y+X.mat[2][2]*z<<"\n";
t--;
}
}
int main()
{
read();
return 0;
}