Cod sursa(job #8335)

Utilizator unholyfrozenCostea Andrei unholyfrozen Data 24 ianuarie 2007 17:19:13
Problema 1-sir Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include<stdio.h>

#define NMAX 256
#define Q 194767
#define ab(a) ((a) < 0 ? -(a) : (a))

int V[2][NMAX * (NMAX + 1) + 15], N, S;

int main()
{
	int i, j, c, ok;
     
	freopen("1-sir.in", "r", stdin);
     freopen("1-sir.out", "w", stdout);

     scanf("%d%d", &N, &S);
     c = N * (N + 1) / 2;
     V[0][0] = 1;
     for(i = 1, ok = 1; i < N; i++, ok = !ok)
     for(j = 0; j <= (N * (N + 1) / 2); j++)
     {
	V[ok][j] = 0;
		if(j - i >= -(i * (i + 1) / 2)) V[ok][j] += V[!ok][ab(j - i)];
          if(j + i <= (i * (i + 1) / 2)) V[ok][j] += V[!ok][j + i], V[ok][j] %= Q;
     }
	if(S < 0) S = -S;
	if(S > c)
     printf("0\n");
     else printf("%d\n", V[!ok][S + c]);
	return 0;
}