Cod sursa(job #1118931)
Utilizator | Data | 24 februarie 2014 13:54:16 | |
---|---|---|---|
Problema | Culori | Scor | 24 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.57 kb |
#include<cstdio>
using namespace std;
int n,E[280],D[280][280];
int main()
{
int i,j,k,l;
freopen("culori.in","r",stdin);
freopen("culori.out","w",stdout);
scanf("%d",&n);
for (i=1;i<2*n;++i)
scanf("%d",&E[i]), D[i][i]=1;
for (l=2;l<2*n;++l)
for (i=1;i+l<2*n;++i)
{
j=i+l;
if (E[i]==E[j])
for (k=i+2;k<=j;++k)
if (E[i]==E[k])
D[i][j]+=D[i+1][k-1]*D[k][j], D[i][j]%=9901;
}
printf("%d\n",D[1][2*n-1]);
return 0;
}