Pagini recente » Cod sursa (job #2088689) | Cod sursa (job #1323776) | Cod sursa (job #654063) | Cod sursa (job #499424) | Cod sursa (job #1196665)
#include <fstream>
#include <cstring>
using namespace std;
#define MOD 666013
class matrix{
public:
long long a[4][4];
matrix(){
memset(a,0,sizeof a);
}
void init(int x,int y,int z){
a[1][2]=a[2][3]=1;
a[1][1]=x;
a[2][1]=y;
a[3][1]=z;
}
void operator*=(matrix m){
matrix r;
for(int i=1;i<=3;i++){
for(int j=1;j<=3;j++){
for(int k=1;k<=3;k++)
r.a[i][j]+=a[i][k]*m.a[k][j];
r.a[i][j]%=MOD;
}
}
*this=r;
}
};
matrix lgput(matrix m,int p){
matrix sol;
sol.a[1][1]=sol.a[2][2]=sol.a[3][3]=1;
while(p){
if(p&1)
sol*=m;
m*=m;
p>>=1;
}
return sol;
}
int main(){
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int t,X,Y,Z,A,B,C,N;
f >> t;
while(t){
f >> X >> Y >> Z >> A >> B >> C >> N;
matrix z,c;
z.init(A,B,C);
z=lgput(z,N-2);
c.a[1][1]=Z;
c.a[1][2]=Y;
c.a[1][3]=X;
c*=z;
g << c.a[1][1] <<"\n";
t--;
}
}