Pagini recente » Cod sursa (job #45002) | Cod sursa (job #568701) | Cod sursa (job #2525703) | Cod sursa (job #2074704) | Cod sursa (job #34765)
Cod sursa(job #34765)
#include <cstdio>
#include <cstring>
using namespace std;
const int MOD = 194767;
const int DELTA = 34000;
int mat[2][2 * DELTA];
int main() {
FILE *fin = fopen ("1-sir.in", "r");
FILE *fout = fopen ("1-sir.out", "w");
mat[1][DELTA] = 1;
int n, k, i, j, ii = 0, sum = 0;
fscanf (fin, "%d %d", &n, &k);
for (i = 2; i <= n; ++i, ii^=1) {
sum += i - 1;
memset(mat[ii], 0, sizeof(mat[ii]));
for (j = -sum; j <= sum; ++j) {
mat[ii][j + DELTA] = (mat[!ii][j - (i - 1) + DELTA] + mat[!ii][j + (i - 1) + DELTA]) % MOD;
}
}
if (k > sum || k < -sum) {
fprintf (fout, "0\n");
} else {
fprintf (fout, "%d\n", mat[!ii][k + DELTA]);
}
fclose(fout);
return 0;
}