Pagini recente » Cod sursa (job #1624777) | Cod sursa (job #2827787) | Cod sursa (job #3178793) | Cod sursa (job #2338590) | Cod sursa (job #2529678)
#include <iostream>
#include <fstream>
#include <cstring>
#define VAL 44100
#define MOD 10000
using namespace std;
ifstream f("diamant.in");
ofstream g("diamant.out");
int n, m, x, dp[VAL+10], dp1[VAL+10], dp2[VAL+10];
void rucsac(int nr)
{ memset(dp1, 0, sizeof(dp1));
memset(dp2, 0, sizeof(dp2));
for(int i=x; i>=nr; i--) dp1[i] = (dp[i-nr] + dp[i]) % MOD;
for(int i=0; i<=x-nr; i++) dp2[i] = (dp[i+nr] + dp[i]) % MOD;
for(int i=0; i<=x; i++) dp[i] = (dp1[i] + dp2[i]) % MOD;
}
int main()
{
f >> n >> m >> x;
if(x < 0) x = -x;
if(x > VAL)
{ g << 0 << '\n';
return 0;
}
dp[0] = 1;
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++)
rucsac(i*j);
g << dp[x] << '\n';
return 0;
}