Pagini recente » Cod sursa (job #597573) | Cod sursa (job #1434596) | Cod sursa (job #451485) | Cod sursa (job #1191841) | Cod sursa (job #34768)
Cod sursa(job #34768)
#include <cstdio>
using namespace std;
const int MOD = 10000;
const int DELTA = 81000;
int mat[2][2 * 81000];
int main() {
FILE *fin = fopen ("diamant.in", "r");
FILE *fout = fopen ("diamant.out", "w");
int sMax = 0, i, j, k, m, n, x, ii = 1;
fscanf (fin, "%d %d %d", &m, &n, &x);
mat[0][DELTA] = 1;
for (i = 1; i <= m; ++i) {
for (j = 1; j <= n; ++j) {
int c = i * j;
sMax += c;
for (k = -sMax; k <= sMax; ++k) {
mat[ii][k + DELTA] = (mat[!ii][k + DELTA] + mat[!ii][k + c + DELTA] + mat[!ii][k - c + DELTA]) % MOD;
}
ii ^= 1;
}
}
if (x > sMax || x < -sMax) {
fprintf (fout, "0\n");
} else {
fprintf (fout, "%d\n", mat[!ii][x + DELTA]);
}
fclose(fout);
return 0;
}