Pagini recente » Cod sursa (job #1539082) | Cod sursa (job #693136) | Cod sursa (job #357192) | Cod sursa (job #633734) | Cod sursa (job #23984)
Cod sursa(job #23984)
#include <stdio.h>
#define NMax 257
FILE *f, *g;
int n, c[2*NMax], a[2*NMax][2*NMax];
void citire();
void afisare();
void pd()
{
int i, j, l, k;
for (i = 1; i <= 2*n - 1; i++)
a[i][i] = 1;
for (l = 1; l <= 2*n - 1; l+=2)
{
for (i = 1; i+l-1 <= 2*n-1; i++)
{
j = i+l-1; // intervalul [i, j]
if (c[i] == c[j])
{
for (k = i+1; k <= j-1; k++)
{
a[i][j] = (a[i][j] + a[i+1][k] * a[k+1][j] )%9901;
}
}
}
}
}
int main()
{
citire();
pd();
afisare();
return 0;
}
void citire()
{
int i;
f = fopen("culori.in", "rt");
fscanf(f, "%d", &n);
for (i = 1; i <= 2*n - 1; i++)
fscanf(f, "%d", &c[i]);
fclose(f);
}
void afisare()
{
int i;
g = fopen("culori.out", "wt");
fprintf(g, "%d\n", a[1][2*n-1]);
fclose(g);
}