Cod sursa(job #26263)
Utilizator | Ionescu Bogdan-Gabriel ionescu_bogdan | Data | 5 martie 2007 13:25:25 |
---|---|---|---|
Problema | Culori | Scor | 4 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.51 kb |
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define nmax 520
int n,i,j,k,a[nmax][nmax],s[nmax];
int main()
{
freopen("culori.in","r",stdin);
freopen("culori.out","w",stdout);
scanf("%d",&n);
for (i=0;i<2*n-1;i++)
scanf("%d",s+i);
for (i=0;i<2*n-1;++i)
a[i][i]=1;
for (i=1;i<2*n-1;i++)
for (j=0;j<2*n-1-i;j++)
if ((s[j]==s[i+j])&&((j-i)%2==0))
{
for (k=j+1;k<i+j;k++)
a[j][i+j]+=a[j+1][k]*a[k+1][i+j];
}
printf("%d\n",a[0][2*n-2]);
return 0;
}