Pagini recente » Cod sursa (job #1243211) | Cod sursa (job #1170155) | Cod sursa (job #1771977) | Diferente pentru implica-te/arhiva-educationala intre reviziile 75 si 74 | Cod sursa (job #2114487)
#include <cstdio>
#define MOD 9901
using namespace std;
int a[520][520],v[520];
int main()
{
FILE *fin=fopen ("culori.in","r");
FILE *fout=fopen ("culori.out","w");
int n,i,j,k;
fscanf (fin,"%d",&n);
for (i=1;i<=2*n-1;i++)
fscanf (fin,"%d",&v[i]);
// d[i][j] = nr de arbori care pot genera secv i..j
for (i=1;i<=2*n-1;i++)
a[i][i]=1;
for (i=2*n-3;i>0;i--){
for (j=2*n-1;j>=i+2;j--){
if (v[i]!=v[j] || (i+j)%2==1)
continue;
for (k=i+1;k<j;k++){
if (v[i+1]==v[k])
a[i][j]=(a[i][j]+(a[i+1][k]*a[k+1][j])%MOD)%MOD;
}
}
}
fprintf (fout,"%d",a[1][2*n-1]);
return 0;
}