Cod sursa(job #2024997)

Utilizator osiaccrCristian Osiac osiaccr Data 21 septembrie 2017 19:04:50
Problema Nivele Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1 kb
#include <fstream>

using namespace std;

ifstream fin ("nivele.in");
ofstream fout ("nivele.out");

int t, s[100001], k, n;

int main () {
    fin >> t;
    for (int i = 1; i <= t; i++) {
        fin >> n;
        int r = 0;
        while (true) {
            if (k < 2 && r < n) {
                fin >> s[++k];
                r++;
                continue;
            }
            if (k >= 2 && s[k - 1] == s[k]) {
                s[k - 1]--;
                s[k] = 0;
                k--;
                continue;
            }
            if (r == n) {
                if (k == 1 && s[1] == 1) {
                    fout << "DA\n";
                    break;
                }
                if (k >= 2 && s[k - 1] != s[k]) {
                    fout << "NU\n";
                    break;
                }
            }
            fin >> s[++k];
            r++;
        }
        for (int i = 1; i <= k; i++)
            s[k] = 0;
        k = 0;

    }
    return 0;
}