Pagini recente » Cod sursa (job #2984663) | Cod sursa (job #2420963) | Cod sursa (job #2843287) | Cod sursa (job #1452751) | Cod sursa (job #923398)
Cod sursa(job #923398)
#include <fstream>
using namespace std;
ifstream in ("diamant.in");
ofstream out ("diamant.out");
const int MOD = 10000;
int n, m, x;
int aux[44101], *nr;
int v[450];
int ad[44101], *pplus;
int sc[44101], *mminus;
int main()
{
in >> n >> m >> x;
nr = aux + 22050;
pplus = ad + 22050;
mminus = sc + 22050;
int u = 0;
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
v[++u] = i * j;
}
}
int st = 0, dr = 0;
nr[0] = 1;
for (int i = 1; i <= n*m; i++) {
for (int j = dr; j >= st; j --) {
pplus[j + v[i]] = nr[j];
}
for (int j = st; j <= dr; j++) {
mminus[j - v[i]] = nr[j];
}
st -= v[i];
dr += v[i];
for (int j = st; j <= dr; j++) {
nr[j] += (pplus[j] + mminus[j]) % MOD;
nr[j] %= MOD;
pplus[j] = mminus[j] = 0;
}
}
out << nr[x] << "\n";
return 0;
}