Cod sursa(job #794896)

Utilizator avramavram andrei marius avram Data 7 octombrie 2012 12:44:04
Problema Oo Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.51 kb
#include<stdio.h>
int i,j,k,z[1000],u[1000],d[1000],n,x,q,c0,c1,c2;
int main()
{
	freopen("div3.in","r",stdin);
	freopen("div3.out","w",stdout);
	scanf("%d%d",&n,&k);
	for(i=1;i<=n;i++)
	{
		scanf("%d",&x);
		if(x%3==0)
			c0++;
		if(x%3==1)
			c1++;
		if(x%3==2)
			c2++;
	}
	z[1]=c0;
	u[1]=c1;
	d[1]=c2;
	for(i=2;i<=k;i++)
	{
		z[i]=(z[i-1]*c0+u[i-1]*c2+d[i-1]*c1)%4001;
		u[i]=(z[i-1]*c1+u[i-1]*c0+d[i-1]*c2)%4001;
		d[i]=(z[i-1]*c2+u[i-1]*c1+d[i-1]*c0)%4001;
	}
	printf("%d",z[k]);
	return 0;
}