Pagini recente » Cod sursa (job #1988872) | Cod sursa (job #2440276) | Cod sursa (job #2339133) | Cod sursa (job #2862000) | Cod sursa (job #1095334)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("iepuri.in");
ofstream g("iepuri.out");
int x,y,z,aVal,bVal,cVal,n;
void init(int a[4][4],int b[4][4])
{
a[1][2]=1;
a[2][3]=1;
a[3][1]=aVal;
a[3][2]=bVal;
a[3][3]=cVal;
b[1][1]=1;
b[2][2]=1;
b[3][3]=1;
}
void inmMatrix (int a[4][4],int b[4][4])
{
int i,j,k;
int z[4][4]={0};
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
for (k=1;k<=3;k++)
z[i][j]=z[i][j]+a[i][k]*b[k][j];
for (i=1;i<=3;i++)
for (j=1;j<=3;j++)
a[i][j]=z[i][j];
}
void powMatrix (int a[4][4],int b[4][4])
{
while (n)
{
if (n&1)
inmMatrix(b,a);
inmMatrix(a,a);
n=(n>>1);
}
}
int main ()
{
int k,t;
f>>t;
for (k=1;k<=t;k++)
{
int a[4][4]={0},b[4][4]={0};
f>>x;
f>>y;
f>>z;
f>>aVal;
f>>bVal;
f>>cVal;
f>>n;
init(a,b);
n=n-2;
powMatrix(a,b);
g<<b[3][1]*x+b[3][2]*y+b[3][3]*z<<'\n';
}
}