Cod sursa(job #447631)

Utilizator vladiiIonescu Vlad vladii Data 29 aprilie 2010 17:33:04
Problema Culori Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <iostream>
using namespace std;
#define maxn 257

int N, C[2*maxn], A[2*maxn][2*maxn];

int main() {
    FILE *f1=fopen("culori.in", "r"), *f2=fopen("culori.out", "w");
    int i, c, k;
    fscanf(f1, "%d\n", &N);
    for(i=1; i<=2*N - 1; i++) {
         fscanf(f1, "%d", &C[i]);
         A[i][i] = 1;
    }
    for(c=1; c<2*N-1; c++) {
         for(i=1; i<=2*N-1-c; i++) {
              //calculez A[i][i+c]
              if(C[i] == C[i+c]) {
                   for(k=i+1; k<i+c; k++) {
                        if(C[i+1] == C[k]) {
                             A[i][i+c]+=(A[i+1][k] * A[k+1][i+c]);
                        }
                   }
              }
         }
    }
    
    fprintf(f2, "%d\n", A[1][2*N-1]);
    fclose(f1); fclose(f2);
    return 0;
}