Cod sursa(job #1861027)

Utilizator hrazvanHarsan Razvan hrazvan Data 28 ianuarie 2017 15:35:21
Problema Nivele Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include <cstdio>
#define MAXN 50000
int v[MAXN], p, nr = 1;

int calc(int d, int n){
  if(nr > n)
    return 0;
  int r;
  if(v[p] > d){
    nr++;
    r = calc(d + 1, n);
    if(r == 0)
      return 0;
    r = calc(d + 1, n);
    if(r == 0)
      return 0;
  }
  else  if(v[p] == d){
    p++;
    return 1;
  }
  else{
    return 0;
  }
}

int main(){
  FILE *in = fopen("nivele.in", "r");
  FILE *out = fopen("nivele.out", "w");
  int t, n, i;
  char r;
  fscanf(in, "%d", &t);
  for(; t > 0; t--){
    fscanf(in, "%d", &n);
    for(i = 0; i < n; i++)
      fscanf(in, "%d", &v[i]);
    r = calc(1, n);
    if(nr != n || r == 0)
      fprintf(out, "NU\n");
    else
      fprintf(out, "DA\n");
  }
  fclose(in);
  fclose(out);
  return 0;
}