Cod sursa(job #34791)

Utilizator m_dersidanDersidan Mihai m_dersidan Data 21 martie 2007 13:54:51
Problema Diamant Scor 90
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.69 kb
# include <stdio.h>
# include <string.h>

# define  _fin  "diamant.in"
# define  _fout "diamant.out"

# define  maxn  45000


int an[maxn+1], ap[maxn+1],
	bn[maxn+1], bp[maxn+1];

# define a(i) (i<0?an[-(i)]:ap[i])
# define b(i) (i<0?bn[-(i)]:bp[i])

int main()
{
	freopen(_fin, "r", stdin);
	freopen(_fout,"w", stdout);
	
	int i, j, s, n, m, k;
	
	scanf("%d%d%d", &n, &m, &k);
	if ( k > maxn ) {
		printf("0\n");
		return 0;
	}
	
	a(0)=1;
	for (i=1; i<=n; i++)
		for (j=1; j<=m; j++) {
			memcpy(bn, an, sizeof(an));
			memcpy(bp, ap, sizeof(ap));
			
			for (s=maxn; s>=-maxn; s--)
				a(s)=(b(s-i*j)+b(s)+b(s+i*j))%10000;
		}

	printf("%d\n", a(k));
	
	return 0;
}