Cod sursa(job #1987316)
Utilizator | Data | 30 mai 2017 12:11:43 | |
---|---|---|---|
Problema | Culori | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva de probleme | Marime | 0.64 kb |
#include <bits/stdc++.h>
#define MOD 9901
using namespace std;
int n,i,a[530][530],j,k,v[530],l;
int main()
{
freopen("culori.in","r",stdin);
freopen("culori.out","w",stdout);
scanf("%d",&n);
n=2*n-1;
for(i=1; i<=n; ++i)
{
scanf("%d",&v[i]);
a[i][i]=1;
}
for(l=2; l<=n; l+=2)
for(i=1; i<=n-2; ++i)
{
j=i+l;
if(v[i]==v[j]&&(i+j)%2==0)
{
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;
}
}
printf("%d\n",a[1][n]%MOD);
return 0;
}