Cod sursa(job #23984)

Utilizator diac_paulPaul Diac diac_paul Data 1 martie 2007 18:35:26
Problema Culori Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.81 kb
#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);
}