Pagini recente » Cod sursa (job #2582604) | Cod sursa (job #961158) | Cod sursa (job #2190324) | Cod sursa (job #783024) | Cod sursa (job #25899)
Cod sursa(job #25899)
#include <stdio.h>
#define MOD 9901
#define MOD2 (MOD*MOD)
unsigned short s[512][512], cul[512];
char ok[512][512];
unsigned short sol(int x, int y)
{
if (ok[x][y]) return s[x][y];
ok[x][y]=1;
unsigned rez=0;
if (cul[x]==cul[y]){
rez=sol(x+1, y-1);
for (int i=x+2; i<y-1; i+=2)
if (cul[i]==cul[x]){
rez+=sol(x+1,i-1)*sol(i,y);
if (rez>MOD2) rez-=MOD2;
}
}
s[x][y]=rez%MOD;
return s[x][y];
}
int main()
{
freopen("culori.in", "r", stdin);
freopen("culori.out", "w", stdout);
int i,n;
scanf("%d", &n);
for (i=1; i<2*n; i++)
for (int j=0; j<=i; j++)
ok[i][j]=s[i][j]=1;
for (i=1; i<2*n; i++)
scanf("%d", cul+i);
printf("%d\n", sol(1, 2*n-1));
return 0;
}