Pagini recente » Cod sursa (job #1782798) | Cod sursa (job #2846783) | Cod sursa (job #2285249) | Cod sursa (job #2556167) | Cod sursa (job #793964)
Cod sursa(job #793964)
#include <cstdio>
#include <cstring>
const int MAX_SIZE(100000);
const int MOD(10000);
const int MAX_VALUE(44100);
int data1 [MAX_SIZE];
int *const v1(data1 + (MAX_SIZE >> 1));
int data2 [MAX_SIZE];
int *const v2(data2 + (MAX_SIZE >> 1));
int n, m, x;
inline void dynamic (void)
{
*v2 = 1;
int i, j, d, p;
for (i = 1 ; i <= n ; ++i)
for (j = 1 ; j <= m ; ++j)
{
p = i * j;
std::memcpy(data1,data2,sizeof(data2));
for (d = MAX_VALUE ; d >= -MAX_VALUE ; --d)
{
v2[d] = v1[d] + v1[d - p] + v1[d + p];
v2[d] %= MOD;
}
}
}
int main (void)
{
std::freopen("diamant.in","r",stdin);
std::freopen("diamant.out","w",stdout);
std::scanf("%d%d%d",&n,&m,&x);
std::fclose(stdin);
dynamic();
std::printf("%d\n",v2[x]);
return 0;
}