Cod sursa(job #137312)

Utilizator crawlerPuni Andrei Paul crawler Data 17 februarie 2008 11:10:25
Problema Nivele Scor 100
Compilator cpp Status done
Runda preONI 2008, Runda 4, Clasele 11-12 Marime 0.88 kb
#include <cstdio>

int x[65536], p[65536], l[65536];

void solve()
{
     int n, t=1;
          
     scanf("%d", &n);
     
     for (int i=1;i<=n;++i)
     {
         scanf("%d", &x[i]);
         p[i] = i+1;
         l[i] = i-1;
     }      
     p[n] = -1;     
     
     while (p[t] != -1)
      if (x[t] == x[p[t]])
      {
          p[t] = p[p[t]];
          l[p[t]] = t;
          --x[t];      
          if (x[t] == 0) 
          {
             printf("NU\n");
             return;
          }         
           if (t!=1) t=l[t]; 
       } else t = p[t];
                
     if (t==1 && p[t] == -1 && x[t] == 1) printf("DA\n"); else printf("NU\n");     
}

int main()
{
    freopen("nivele.in","r",stdin);
    freopen("nivele.out","w",stdout);
    
    int t;
    
    scanf("%d", &t);
    
    while (t--) solve();
    
    return 0;    
}