Pagini recente » Cod sursa (job #2394193) | Cod sursa (job #711030) | Cod sursa (job #2892748) | Cod sursa (job #354397) | Cod sursa (job #2692012)
#include <cstdio>
#define mod 666013
using namespace std;
int n,day0,day1,day2,m[3][3],sol[3][3];
void mset() {
int i,j;
m[0][0]=0;
m[0][1]=0;
m[1][0]=1;
m[1][1]=0;
m[2][0]=0;
m[2][1]=1;
for(i=0;i<3;++i) {
for(j=0;j<3;++j) {
sol[i][j]=(i==j);
}
}
}
void read() {
mset();
scanf("%d%d%d%d%d%d%d",&day0,&day1,&day2,&m[2][2],&m[1][2],&m[0][2],&n);
}
void multMatrix() {
int i,j,r[3][3];
for(i=0;i<3;++i) {
for(j=0;j<3;++j) {
r[i][j]=m[i][0]*sol[0][j]+m[i][1]*sol[1][j]+m[i][2]*sol[2][j];
}
}
for(i=0;i<3;++i) {
for(j=0;j<3;++j) {
sol[i][j]=r[i][j];
}
}
}
void squareMatrix() {
int i,j,r[3][3];
for(i=0;i<3;++i) {
for(j=0;j<3;++j) {
r[i][j]=m[i][0]*m[0][j]+m[i][1]*m[1][j]+m[i][2]*m[2][j];
}
}
for(i=0;i<3;++i) {
for(j=0;j<3;++j) {
m[i][j]=r[i][j];
}
}
}
void powMatrix(int exp) {
if(exp) {
if(exp%2) {
multMatrix();
}
squareMatrix();
powMatrix(exp>>1);
}
}
void solve() {
powMatrix(n-2);
}
void display() {
printf("%d\n",day0*sol[0][2]+day1*sol[1][2]+day2*sol[2][2]);
}
void play() {
read();
solve();
display();
}
int main() {
freopen("iepuri.in","r",stdin);
freopen("iepuri.out","w",stdout);
int iq,q;
scanf("%d",&q);
for(iq=0;iq<q;++iq) {
play();
}
return 0;
}