Cod sursa(job #8313)

Utilizator unholyfrozenCostea Andrei unholyfrozen Data 24 ianuarie 2007 12:52:04
Problema 1-sir Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include<stdio.h>

#define NMAX 256
#define Q 194767

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

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

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