Pagini recente » Cod sursa (job #1175441) | Cod sursa (job #3265770) | Cod sursa (job #3155079) | Cod sursa (job #333472) | Cod sursa (job #3178076)
#include <fstream>
#include <vector>
#include <cmath>
#define modulo 666013
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
int n, a, b, c, x, y, z, t;
struct matrice
{
long long v[3][3];
matrice()
{
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
v[i][j]=0;
}
};
matrice multiply(matrice a, matrice b)
{
matrice c;
for(int i=0; i<3; i++)
for(int j=0; j<3; j++)
for(int k=0; k<3; k++)
c.v[i][j]=(c.v[i][j] + a.v[i][k]*b.v[k][j])%modulo;
return c;
}
matrice power(matrice m, long long p)
{
matrice rez;
for(int i=0; i<3; i++)
rez.v[i][i]=1;
for(; p!=0; p/=2)
{
if(p%2==1)
{
rez=multiply(rez,m);
}
m=multiply(m,m);
}
return rez;
}
int main()
{
cin>>t;
while(t--)
{
cin>>x>>y>>z>>a>>b>>c>>n;
matrice mat;
mat.v[2][0]=c;
mat.v[2][1]=b;
mat.v[2][2]=a;
mat.v[0][1]=1;
mat.v[1][2]=1;
mat=power(mat,n-2);
int result = x*mat.v[2][0] + y*mat.v[2][1] + z*mat.v[2][2];
cout<<result<<endl;
}
return 0;
}