Cod sursa(job #365036)

Utilizator perticas_catalinperticas catalin perticas_catalin Data 17 noiembrie 2009 18:40:10
Problema Nivele Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.02 kb
#include<iostream>
#include<string>
#include<stack>
#include<algorithm>

using namespace std;

stack<int> STK;

int main()
{
    int T,N,NR;
    
    freopen("nivele.in","r",stdin);
    freopen("nivele.out","w",stdout);
    
    scanf("%d",&T);
    
    for(int i=1;i<=T;++i)
    {
      scanf("%d",&N);
      
      while(!STK.empty()) STK.pop();
      
      for(int j=1;j<=N;++j)
      {
        scanf("%d",&NR);
        STK.push(NR);
        
        int prob=1;
        
        while(prob)
        {
          prob=0;
           
          if(STK.size()>=2)
          {
            NR=STK.top();
            STK.pop();
            if(NR==STK.top())
            {
              STK.pop();
              STK.push(NR-1);
              prob=1;
            }
            else STK.push(NR);
          }
        }
      }
      
      int TOP=STK.top();
      
      STK.pop();
      
      if(STK.empty() && TOP==1) printf("DA\n");
      else printf("NU\n");
    }
    
    return 0;
}