Cod sursa(job #479117)

Utilizator MirceaTanaseMircea Tanase MirceaTanase Data 22 august 2010 19:46:03
Problema 1-sir Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.7 kb
#include <algorithm>
#include <stdio.h>

#define MAX 310
#define restRez 194767

using namespace std;

int n, s;
int solA[MAX * MAX], solT[MAX * MAX];

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

	scanf("%d %d", &n, &s);

	s = (n * (n - 1) / 2) - s;

	if (s & 1 || s < 0 || s > n * (n - 1))
		printf("0\n");
	else
	{
		s /= 2;

		solA[0] = 1;
		for (int i = 1; i < n; i++)
		{
			for (int j = 0; j <= i * (i - 1) / 2; j++)
				solT[j] = solA[j];

			for (int j = 0; j <= i * (i + 1) / 2 - i; j++)
				solA[j + i] = (solA[j + i] + solT[j]) % restRez;
		}

		printf("%d\n", solA[s]);
	}

	fclose(stdin);
	fclose(stdout);
	return 0;
}