Pagini recente » Cod sursa (job #1491504) | Cod sursa (job #2531746) | Cod sursa (job #2048721) | Cod sursa (job #1159372) | Cod sursa (job #1194295)
#include<cstdio>
#include<algorithm>
#include <fstream>
#include <iostream>
#define mod 10000
using namespace std;
int n, m, x, suma, dp[90005], aux[90005];
int main()
{
ifstream cin("diamant.in");
ofstream cout("diamant.out");
cin >> n >> m >> x;
for (int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++)
suma += i * j;
if (x < -suma || x > suma)
{
cout << 0;
return 0;
}
dp[suma + 1] = 1;
for(int i = 1; i <= n; i ++)
for(int j = 1; j <= m; j ++)
{
for (int k = 0; k < 90005; k ++)
aux[k] = 0;
for (int k = 1; k <= 2 * suma + 1; k ++)
{
if (k - i * j > 0 && dp[k - i * j])
{
aux[k] += dp[k - i * j];
if (aux[k] >= mod)
aux[k] -= mod;
}
if (k + i * j <= 2 * suma + 1 && dp[k + i * j])
{
aux[k] += dp[k + i * j];
if (aux[k] >= mod)
aux[k] -= mod;
}
}
for (int k = 1; k <= 2 * suma + 1; k ++)
{
dp[k] += aux[k];
dp[k] -= (dp[k] >= mod) ? mod : 0;
}
}
cout << dp[suma + 1 + x];
return 0;
}