Cod sursa(job #505972)

Utilizator mathboyDragos-Alin Rotaru mathboy Data 4 decembrie 2010 17:00:46
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.72 kb
#include <cstdio>
#include <string>
#include <cstring>

#define maxS 33000
#define mod 194767
using namespace std;


int N, S, X1, A[maxS], B[maxS], X2;
int main ()
{

	freopen ("1-sir.in", "r", stdin);
	freopen ("1-sir.out", "w", stdout);

	scanf ("%d %d\n", &N, &S);
	
	X1 = S;
	if (X1 < 0) X1 = -X1;
	if (X1 > N * (N - 1) / 2) {
		
		printf ("0\n");
		return 0;
	}
	
	A[0] = 1;
	for (int i = 2; i <= N; i++) {

		for (int j = 0; j <= N * (N - 1) / 2; j++)
		{	
			X1 = j - i + 1;
			X2 = j + i - 1;

			if (X1 < 0) X1 = -X1;
			B[j] = A[X1] + A[X2];
			if (B[j] >= mod) B[j] %= mod;
		}
		memcpy (A, B, sizeof (B));
		memset (B, 0, sizeof (B));
	}
	if (S >= 0)
		printf ("%d\n", A[S]);
	else printf ("%d\n", A[-S]);

	return 0;

}