Pagini recente » Cod sursa (job #1635173) | Cod sursa (job #804361) | Cod sursa (job #2949204) | Cod sursa (job #3229879) | Cod sursa (job #2179152)
#pragma GCC optimize("03")
#include <bits/stdc++.h>
#define mod 10000
using namespace std;
ifstream in("diamant.in");
ofstream out("diamant.out");
int n, m, x, mx, dp[2][1 << 18], u, cur;
int main(){
in >> n >> m >> x;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++)
mx += i * j;
if(x > mx || x < -mx)
return out << 0, 0;
int MOD = mx;
int sz = 2 * mx;
dp[0][0 + MOD] = dp[0][-1 + MOD] = dp[0][1 + MOD] = 1;
u = 1;
cur = 1;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= m; j++){
if(i == 1 && j == 1)
continue;
int val = i * j;
cur += val;
for(int sum = MOD - cur; sum <= cur + MOD; ++sum){
dp[u][sum] = (dp[u][sum] + dp[!u][sum]) % mod;
dp[u][sum + val] = (dp[u][sum + val] + dp[!u][sum]) % mod;
dp[u][sum - val] = (dp[u][sum - val] + dp[!u][sum]) % mod;
dp[!u][sum] = 0;
}
u = !u;
}
out << dp[!u][x + MOD];
return 0;
}