Pagini recente » Cod sursa (job #1797161) | Istoria paginii runda/pregatire_arhiva_educationala/clasament | Cod sursa (job #437917) | Cod sursa (job #2697065) | Cod sursa (job #1452437)
#include <stdio.h>
#define MAXN 256
#define MAXS 32896
#define MOD 194767
int d[2][MAXS + 1];
inline int as(int x){
return x < 0 ? -x : x;
}
int main(){
FILE *in = fopen("1-sir.in", "r");
int n, s;
fscanf(in, "%d%d", &n, &s);
fclose(in);
FILE *out = fopen("1-sir.out", "w");
if(as(s) <= n * (n - 1) / 2){
int i, j, lin;
d[1][1] = 1;
for(i = 2; i < n; i++){
lin = i & 1;
for(j = i * (i + 1) / 2; j >= 0; j--){
d[lin][j] = 0;
if(j + i + 1 <= MAXS)
d[lin][j] += d[!lin][j + i];
d[lin][j] += d[!lin][as(j - i)];
if(d[lin][j] >= MOD)
d[lin][j] -= MOD;
}
}
fprintf(out, "%d", d[(n - 1) & 1][s]);
}
else
fprintf(out, "0");
fclose(out);
return 0;
}