Pagini recente » Cod sursa (job #2641359) | Cod sursa (job #369689) | Cod sursa (job #2222921) | Cod sursa (job #1053394) | Cod sursa (job #2924388)
#include <fstream>
using namespace std;
ifstream cin("iepuri.in");
ofstream cout("iepuri.out");
int v[5][5],rez[5][5];
int sol[5][5];
int main()
{
int n,i,j,k;
int x,y,z,a,b,c;
int cer;
cin>>cer;
for(int qq=1;qq<=cer;qq++)
{
cin>>x>>y>>z>>a>>b>>c;
cin>>n;
n-=2;
//sol = 1
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
if(i==j)
sol[i][j]=1;
else
sol[i][j]=0;
//v
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
v[i][j]=0;
v[1][2]=1;
v[2][3]=1;
v[3][4]=1;
v[4][2]=c;
v[4][3]=b;
v[4][4]=a;
while(n>0)
{
//v*v
if(n%2==0)
{
n/=2;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
rez[i][j]=0;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
for(k=1;k<=4;k++)
{
rez[i][j]+=v[i][k]*v[k][j];
}
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
v[i][j]=rez[i][j];
}
//sol*v
else
{
n--;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
rez[i][j]=0;
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
for(k=1;k<=4;k++)
{
rez[i][j]+=sol[i][k]*v[k][j];
}
for(i=1;i<=4;i++)
for(j=1;j<=4;j++)
sol[i][j]=rez[i][j];
}
}
cout<<sol[4][2]*x+sol[4][3]*y+sol[4][4]*z;
cout<<endl;
}
return 0;
}