Pagini recente » Cod sursa (job #13232) | Cod sursa (job #2817098) | Cod sursa (job #1152999) | Cod sursa (job #2486934) | Cod sursa (job #18596)
Cod sursa(job #18596)
#include <stdio.h>
#define NMAX 512
#define MOD 9901
int A[NMAX];
int st[NMAX];
int N, ind, sol,p;
void arbori(int niv)
{
if (niv>N)
{
return;
}
if (ind == 2*N-1)
{
if (niv == 1)
{
sol += 1;
sol %- MOD;
}
return;
}
st[++p] = A[ind];
++ind;
if (A[ind] == st[p-1])
{
int x = st[p-1];
int x2 = st[p];
p-=2;
arbori(niv-1);
p+=2;
st[p] = x2;
st[p-1] = x;
}
arbori(niv+1);
--p;
--ind;
}
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", &A[i]);
}
ind = 1;
sol = 0;
p = 0;
st[0] = -1;
arbori(1);
printf("%d\n", sol);
}