Pagini recente » Cod sursa (job #1734933) | Cod sursa (job #1631685) | Cod sursa (job #1729704) | Cod sursa (job #1142548) | Cod sursa (job #48821)
Cod sursa(job #48821)
#include <stdio.h>
int n, m, L;
int i, j, k;
int a[2][100101];
int l1, l2;
int li, ls;
int main()
{
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
scanf("%d %d %d", &n, &m, &L);
a[0][50000] = 1;
l1 = 0, l2 = 1;
li = ls = 50000;
for ( i = 1; i <= n; i++ )
for ( j = 1; j <= m; j++ )
{
li -= i*j;
ls += i*j;
for ( k = li; k <= l2; k++ ) a[l2][k] = 0;
for ( k = li; k <= ls; k++ )
{
a[l2][k] = a[l1][k];
if ( k-i*j >= li ) a[l2][k] += a[l1][k-i*j];
if ( k+i*j <= ls ) a[l2][k] += a[l1][k+i*j];
while ( a[l2][k] >= 10000 ) a[l2][k] -= 10000;
}
l1 = !l1;
l2 = !l2;
}
if ( L > 50000 || L < -50000 ) printf("0\n");
else printf("%d\n", a[l1][L+50000]);
return 0;
}