Cod sursa(job #919007)
Utilizator | Data | 19 martie 2013 12:19:43 | |
---|---|---|---|
Problema | Culori | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.38 kb |
#include<cstdio>
int n,i,j,DP[1010][1010],C[1010],k;
int main()
{
freopen("culori.in","r",stdin);
freopen("culori.out","w",stdout);
scanf("%d",&n);
for(i=1;i<=2*n-1;i++){scanf("%d",&C[i]);DP[i][i]=1;}
for(i=2;i<=2*n-1;i++)
for(j=i-1;j>=1;j--)
{
if(C[i]!=C[j])continue;
for(k=j+1;k<i;k++)DP[j][i]=(DP[j][i]+DP[j+1][k]*DP[k+1][i])%9901;
}
printf("%d",DP[1][2*n-1]);
return 0;
}