Cod sursa(job #41870)

Utilizator marinaMarina Horlescu marina Data 28 martie 2007 17:42:50
Problema 1-sir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.67 kb
#include <stdio.h>
#define INPUT "1-sir.in"
#define OUTPUT "1-sir.out"
#define MAXN 257
#define MAX 32640
#define CONST 194767
int N, S;
int rez[MAXN][MAX*2 + 1];
// rez[i][j] = numarul de siruri cu i termeni si suma j
int main()
{
	freopen(INPUT, "r", stdin);
	scanf("%d %d", &N, &S);
	int i, j;
	rez[1][MAX] = 1;
	for(i = 1; i <= N; ++i)
	{
		for(j = -MAX; j <= MAX; ++j)
		{
			if(j - (i-1) >= -MAX) rez[i][MAX + j] = (rez[i][MAX + j] + rez[i-1][MAX + j - (i-1)]) % CONST;
			if(j + (i-1) <=  MAX) rez[i][MAX + j] = (rez[i][MAX + j] + rez[i-1][MAX + j + (i-1)]) % CONST;
		}
	}
	
	freopen(OUTPUT, "w", stdout);
	printf("%d\n", rez[N][S + MAX]);
	return 0;
}