Cod sursa(job #253638)

Utilizator raduzerRadu Zernoveanu raduzer Data 6 februarie 2009 09:11:12
Problema Robot Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.57 kb
#include <cstdio>

const int MAX_N = 52;

int n, m;
int d[MAX_N][MAX_N];

int main()
{
	int i, j, k, l;
	freopen("gard3.in", "r", stdin);
	freopen("gard3.out", "w", stdout);
	
	scanf("%d %d", &n, &m);
	--m;
	
	for (i = 1; i <= n; ++i) 
	{
		d[i][1] = (i/2);
		d[i][1] *= (i - i/2 - 1);
		d[i][1] += (i % 2) ? 1 : 0;
	}
	
	for (i = 4; i <= n; ++i) 
	{
		for (j = 2; j <= m; ++j)
		{
			for (k = 3; k < i; ++k)
				for (l = 1; l < j; ++l)
					d[i][j] += d[k][l] * d[i - k + 2][j - l];
			
			d[i][j] += d[i - 1][j];
		}
	}
	
	printf("%d\n", d[n][m]);
}