Cod sursa(job #7129)

Utilizator mockeBarca Cristian Mihai mocke Data 21 ianuarie 2007 12:41:08
Problema 1-sir Scor 80
Compilator cpp Status done
Runda preONI 2007, Runda 1, Clasele 11-12 Marime 0.71 kb
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define ABS(a) ( (a) < 0 ? -(a) : (a) )
#define NMAX 32560
#define MOD 194767

int N, S, A[2*NMAX + 1], Ap[2*NMAX + 1];
int MaxV;
#define A (A + NMAX)
#define Ap (Ap + NMAX)

int i, sp;

int main()
{
	freopen("1-sir.in" , "r", stdin);
	freopen("1-sir.out", "w", stdout);
	
	scanf("%d %d", &N, &S);
	
	MaxV = N*(N-1)/2;
	
	if (ABS(S) > MaxV) { printf("0\n"); return 0; }
	
	Ap[0] = 1;
	
	for (i = 1; i < N; i++)
	{	
	
		for (sp = -MaxV; sp <= MaxV; sp++)
		{
			
			A[sp] = (Ap[sp - i] + Ap[sp + i]) % MOD;
		}
		
		for (sp = -MaxV; sp <= MaxV; sp++) Ap[sp] = A[sp];
		
	}
	
	printf("%d\n", Ap[S] % MOD);
	
	return 0;
}