Pagini recente » Cod sursa (job #108464) | Autentificare | Cod sursa (job #890700) | Cod sursa (job #1848541) | Cod sursa (job #1457727)
#include <cstdio>
#include <iostream>
#include <vector>
#include <set>
#include <cmath>
#include <climits>
#include <list>
#include <iomanip>
#include <cstdlib>
using namespace std;
int main() {
freopen("diamant.in", "r", stdin);
freopen("diamant.out", "w", stdout);
ios_base::sync_with_stdio(false);
cin.tie(0);
int n, m, x;
cin >> n >> m >> x;
int vm = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
vm += i * j;
}
}
if (x > vm || x < -vm) {
cout << 0;
return 0;
}
int* v = (int*)malloc((2 * vm + 1) * sizeof(int));
int* vn = (int*)malloc((2 * vm + 1) * sizeof(int));
for (int i = 0; i <= 2 * vm; i++) {
v[i] = 0;
}
v[vm] = 1;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
for (int k = 0; k <= 2 * vm; k++) {
vn[k] = v[k];
}
for (int k = 0; k <= 2 * vm; k++) {
if (v[k] != 0) {
vn[k - i * j] += v[k];
vn[k + i * j] += v[k];
}
}
for (int k = 0; k <= 2 * vm; k++) {
v[k] = vn[k];
}
}
}
cout << v[x];
return 0;
}