Pagini recente » Cod sursa (job #261828) | Cod sursa (job #1647809) | Cod sursa (job #3219398) | Cod sursa (job #3201863) | Cod sursa (job #48811)
Cod sursa(job #48811)
#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 >= 0 ) a[l2][k] += a[l1][k-i*j];
if ( k+i*j <= 100000 ) a[l2][k] += a[l1][k+i*j];
}
l1 = !l1;
l2 = !l2;
}
if ( L > 50000 ) printf("-1\n");
else printf("%d\n", a[l1][L+50000]);
return 0;
}