Cod sursa(job #425835)

Utilizator dushmiMihai-Alexandru Dusmanu dushmi Data 26 martie 2010 10:22:41
Problema Diamant Scor 100
Compilator cpp Status done
Runda Simulare CNITV 2 Marime 0.56 kb
#include<cstdio>
const int MOD=10000;
int n,m,val,MAX,mod[1<<16],mod1[1<<16];
inline int modul(int x)
{
	return x>0?x:(-x);
}
int main()
{
	freopen("diamant.in","r",stdin);
	freopen("diamant.out","w",stdout);
	scanf("%d%d%d",&n,&m,&val);
	MAX=n*m*(n+1)*(m+1)/4;
	if(val>MAX)
	{
		printf("0");
		return 0;
	}
	mod[0]=1;
	for(int i=1;i<=n;i++)
		for(int j=1;j<=m;j++)
		{
			for(int k=0;k<=MAX;k++)
				mod1[k]=(mod[modul(k-i*j)]+mod[k]+mod[k+i*j])%MOD;
			for(int k=0;k<=MAX;k++)
				mod[k]=mod1[k];
		}
	printf("%d",mod[modul(val)]);
	return 0;
}