Cod sursa(job #1392774)

Utilizator hrazvanHarsan Razvan hrazvan Data 18 martie 2015 21:29:18
Problema Culori Scor 100
Compilator c Status done
Runda Arhiva de probleme Marime 0.75 kb
#include <stdio.h>
#define MAXN 256
#define MOD 9901
int d[2 * MAXN - 1][2 * MAXN - 1], v[2 * MAXN - 1];

int main(){
  FILE *in = fopen("culori.in", "r");
  int n, i, j, k, ii;
  fscanf(in, "%d", &n);
  n = n * 2 - 1;
  for(i = 0; i < n; i++)
    fscanf(in, "%d", &v[i]);
  fclose(in);
  for(i = 0; i < n; i++)
    d[i][i] = 1;
  for(i = 3; i <= n; i += 2){
    for(j = 0; j + i - 1 < n; j++){
      k = j + i - 1;
      if(v[j] == v[k]){
        for(ii = j + 1; ii < k; ii++){
          if(v[j + 1] == v[ii]){
            d[j][k] += d[j + 1][ii] * d[ii + 1][k];
            d[j][k] %= MOD;
          }
        }
      }
    }
  }
  FILE *out = fopen("culori.out", "w");
  fprintf(out, "%d", d[0][n - 1]);
  fclose(out);
  return 0;
}