Pagini recente » Cod sursa (job #2488457) | Cod sursa (job #2065436) | Cod sursa (job #484711) | Cod sursa (job #2448732) | Cod sursa (job #1511884)
#include <cstdio>
#define DIM 520
#define MOD 9901
using namespace std;
int N;
int D[DIM][DIM], V[DIM];
int getSol (int left, int right)
{
if (V[left] != V[right])
return 0;
if (D[left][right] != 0)
return D[left][right];
if (left == right)
D[left][right] = 1;
else
{
for (int middle = left + 1; middle < right; middle ++)
if (V[left+1] == V[middle])
D[left][right] = (D[left][right] + getSol(left + 1, middle) * getSol (middle + 1, right)) % MOD;
}
return D[left][right];
}
int main ()
{
freopen ("culori.in" , "r", stdin );
freopen ("culori.out", "w", stdout);
scanf ("%d", &N);
for (int i = 1; i <= 2 * N - 1; i ++)
scanf ("%d", &V[i]);
printf ("%d\n", getSol(1, 2*N-1));
fclose (stdin );
fclose (stdout);
return 0;
}