Cod sursa(job #2001876)

Utilizator pepsiM4A1Ozturk Arif pepsiM4A1 Data 17 iulie 2017 22:18:06
Problema Nivele Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <cstdio>
using namespace std;
const int nmax=50004;
char buff[nmax];
int poz=nmax-1;
void citeste(int &nr)
{
    nr=0;
    while(!('0'<=buff[poz]&&buff[poz]<='9'))
    {
        if(++poz==nmax) fread(buff,1,nmax,stdin),poz=0;
    }
    while('0'<=buff[poz]&&buff[poz]<='9')
    {
        nr=nr*10 + buff[poz]-'0';
        if(++poz==nmax) fread(buff,1,nmax,stdin),poz=0;
    }
}
int p;
int v[nmax];
int n;
int main()
{
    freopen ("nivele.in","r",stdin);
    freopen ("nivele.out","w",stdout);
    int t;
    citeste(t);
    for(;t>0;--t)
    {
        citeste(n);
        citeste(v[1]);
        p=1;
        for(int i=2;i<=n;i++)
        {
            int val;
            citeste(val);
            while(p>0&&val==v[p])
            {
                --val;
                --p;
            }
            v[++p]=val;
        }
        if(p!=1||v[1]!=1) printf("NU\n");
        else printf("DA\n");
    }
}