Pagini recente » Cod sursa (job #414422) | Cod sursa (job #1720534) | Cod sursa (job #1674815) | Cod sursa (job #537988) | Cod sursa (job #25563)
Cod sursa(job #25563)
#include <stdio.h>
#include <string.h>
#define nm 45
int n, k, p, i, j, K, l, nrsol, len;
int P[nm][nm];
char s[nm];
void read()
{
scanf("%d %d %d", &n, &k, &p);
}
void solve()
{
P[1][1] = k;
for (i=2; i<=n; i++)
for (j=1; j<=k && j<=i; j++)
{
P[i][j] = 0;
for (K=1; K<i; K++)
for (l=1; l<=j && l <=K; l++)
{
P[i][j] += P[K][l] * P[i - K - 1][j - l];
}
//printf("P[i][j] %d %d %d\n", i, j, P[i][j]);
for (K=1; K<i; K++)
for (l=1; l<=j && l <=K; l++)
{
P[i][j] += P[K][l] * P[i - K - 1][j - l];
}
P[i][j] += P[i-1][j];
}
/* for (i=1; i<=n; i++)
{
for (j=1; j<=k; j++)
printf("%d ", P[i][j]);
printf("\n");
}*/
nrsol = 0;
for (i=1; i<=k; i++)
nrsol += P[n][i];
}
void write()
{
printf("%d\n", nrsol);
memset(s, 0, sizeof(s));
for (i=0; i<n/2; i++)
s[i] = 'A';
len = strlen(s);
for (i=1; i<len; i++)
s[strlen(s)] = '+';
if ((int)strlen(s) < n)
s[strlen(s)] = '!';
printf("%s\n", s);
}
int main()
{
freopen("expresii2.in" ,"r", stdin);
freopen("expresii2.out","w",stdout);
read();
solve();
write();
fclose(stdin);
fclose(stdout);
return 0;
}