Cod sursa(job #221418)

Utilizator tvladTataranu Vlad tvlad Data 16 noiembrie 2008 14:05:29
Problema 1-sir Scor 80
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.62 kb
#include <cstdio>
#include <cmath>

const int N = 256;
const int S = N*(N+1)/2;
const int MOD = 194767;

int n,s, sn;
int d[2][S+1];

int main() {
	freopen("1-sir.in","rt",stdin);
	freopen("1-sir.out","wt",stdout);
	scanf("%d %d",&n,&s);
	d[1][0] = 1;
	sn = n*(n+1)/2;
	if (fabs((double)s) > sn) {
		printf("0\n");
		return 0;
	}
	for (int i = 2, cur = 0; i <= n; ++i) {
		for (int j = 0; j <= sn; ++j) {
			d[cur][(int)fabs((double)j)] = (d[1-cur][(int)fabs((double)j-(i-1))] + d[1-cur][(int)fabs((double)j+(i-1))]) % MOD;
		}
		cur = 1-cur;
	}
	printf("%d\n",d[n%2][(int)fabs((double)s)]);
	return 0;
}