Cod sursa(job #476593)

Utilizator ProtomanAndrei Purice Protoman Data 11 august 2010 18:16:08
Problema Permutari2 Scor 60
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.68 kb
#include <algorithm>
#include <stdio.h>

#define MAX 512
#define restRez 10007

using namespace std;

int n, k;
int a[MAX][MAX];

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

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

	for (int i = 1; i <= n; i++)
	{
		int pt = 0;
		for (int j = i; j > 1; j--)
		{
			for (int h = 1; h < i; h++)
				a[i][j] = (a[i][j] + a[i - h][j - 1] * a[h][1]) % restRez;
			pt = (pt + a[i][j]) % restRez;
		}

		int sol = 1;
		for (int j = 1; j <= i; j++)
			sol = (sol * j) % restRez;
		a[i][1] = (sol + restRez - pt) % restRez;
	}

	printf("%d\n", a[n][k]);

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