Cod sursa(job #1889674)

Utilizator tamionvTamio Vesa Nakajima tamionv Data 22 februarie 2017 20:35:36
Problema Nivele Scor 70
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.59 kb
#include <bits/stdc++.h>
using namespace std;

bool dfs(int*& st, int *dr, const int depth = 1){
    return (st == dr || *st > 1e5) ? false :
        (depth < *st) ? (dfs(st, dr, depth+1) && (st!=dr) && dfs(st, dr, depth+1)) :
        (depth == *st) ? (bool)++st :
        false; }

constexpr int maxn = 5e4 + 10;
int buf[maxn] = {}, *p = buf;

ifstream f("nivele.in");
ofstream g("nivele.out");

int main(){
    int t;
    f >> t;
    while(t--){
        int n;
        f >> n;
        copy_n(istream_iterator<int>(f), n, buf);
        g << (dfs(p=buf, p+n) ? "DA" : "NU") << '\n'; }
    return 0; }