Cod sursa(job #317356)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 23 mai 2009 13:05:49
Problema Iepuri Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include<stdio.h>
int a[3][3],x,y,z,n,b[3][3],c[3][3];
void matrice()
{
	a[0][0]=0;
	a[0][1]=1;
	a[0][2]=0;
	a[1][0]=0;
	a[1][1]=0;
	a[1][2]=1;
	c[0][0]=0;
	c[0][1]=1;
	c[0][2]=0;
	c[1][0]=0;
	c[1][1]=0;
	c[1][2]=1;
}
void inmultire(int m)
{
	for (int i=0; i<3; ++i){
	for (int k=0; k<3; ++k)
		for (int j=0; j<m; ++j)
			b[i][k]+=a[i][j]*c[j][k];}
	for (int i=0; i<3; ++i)
		for (int j=0; j<m; ++j)
			a[i][j]=b[i][j];
}
void citire()
{
	freopen("iepuri.in","r",stdin);
	freopen("iepuri.out","w",stdout);
	int t;
	scanf("%d",&t);
	while (t)
	{
		matrice();
		scanf("%d%d%d%d%d%d%d",&x,&y,&z,&a[2][2],&a[2][1],&a[2][0],&n);
		c[2][0]=a[2][0];
		c[2][1]=a[2][1];
		c[2][2]=a[2][2];
		for (int i=1; i<n; ++i)
			inmultire(3);
		c[0][0]=x;
		c[1][0]=y;
		c[2][0]=z;
		inmultire(1);
		if (n%3==1)
		printf("%d\n",a[0][0]);
		else
		if (n%3==2)
		printf("%d\n",a[1][0]);
		else
		if (n%3==0)
		printf("%d\n",a[2][0]);
		--t;
	}
}
int main()
{
	citire();
	return 0;
}