Pagini recente » Cod sursa (job #442366) | Cod sursa (job #2258250) | Cod sursa (job #1040190) | Cod sursa (job #2223592) | Cod sursa (job #51818)
Cod sursa(job #51818)
#include <stdio.h>
#include <memory.h>
#define SHIFT 50100
#define NMAX (SHIFT*2 + 1000)
long a[NMAX], b[NMAX];
const int MIJLOC = SHIFT/2;
int n, m;
long x;
void dinamic()
{
long i, j, k;
a[MIJLOC] = 1;
a[MIJLOC-1] = a[MIJLOC+1] = 1;
for(i = 1; i <= n; ++i)
{
if(i != 1)
j = 1;
else
j = 2;
for(; j <= m; ++j)
{
memcpy(b, a, sizeof(a));
for(k = 0; k <= SHIFT*2; ++k)
{
if(a[k])
{
//if(k != MIJLOC && b[k] != 1)
b[k - i*j] += a[k];
b[k + i*j] += a[k];
}
}
memcpy(a, b, sizeof(b));
}
}
}
int main()
{
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
scanf("%d %d %ld\n", &n, &m, &x);
dinamic();
printf("%ld\n", a[x + MIJLOC]);
fclose(stdin);
fclose(stdout);
return 0;
}