Cod sursa(job #317391)

Utilizator Alexa_ioana_14Antoche Ioana Alexandra Alexa_ioana_14 Data 23 mai 2009 14:58:11
Problema Iepuri Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.89 kb
#include<stdio.h>
int a[3][3],x,y,z,n,b[3][3],c[3][3];
const int r=666013;
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)
		{
			b[i][k]=0;
			for (int j=0; j<m; ++j)
				b[i][k]=b[i][k]+a[i][j]*c[j][k]%r;
			b[i][k]%=r;
		}
	}
	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);
		
		printf("%d\n",(a[0][0]*x+a[0][1]*y+a[0][2]*z)%r);
		--t;
	}
}
int main()
{
	citire();
	return 0;
}