Cod sursa(job #496614)
| Utilizator | Data | 29 octombrie 2010 23:10:20 | |
|---|---|---|---|
| Problema | Culori | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva de probleme | Marime | 0.47 kb |
#include <cstdio>
#define mod 9901
#define nmax 520
int n, v[nmax], s[nmax][nmax];
int main()
{
freopen("culori.in","r",stdin);
freopen("culori.out","w",stdout);
scanf("%d",&n);
n=2*n-1;
int i, j, d, k;
for (i=1; i<=n; i++)
{
scanf("%d",&v[i]);
s[i][i]=1;
}
for (d=2; d<n; d+=2)
for (i=1; i+d<=n; i++)
{
j=i+d;
if (v[i]==v[j])
for (k=i+1; k<j; k++)
s[i][j]=(s[i][j]+s[i+1][k]*s[k+1][j])%mod;
}
printf("%d\n",s[1][n]);
}