PROBLEMA 11:            PARCURGERE EULER
    DEADLINE:               Luni, 22 martie 1999
    TIMP DE IMPLEMENTARE:   60-75 minute
    DOMENIU:                Parcurgeri de arbori
    PUNCTAJ:                50 dexteri
                            (Observatie. Problema poate valora ceva mai mult
                            de 50 dexteri, dar s-a limitat intrarea la
                            dimensiuni mici, ceea ce simplifica mult
                            abordarea)
    
    Fie un arbore general cu radacina (un nod poate avea oricati fii).
    Arborele are N noduri numerotate de la 1 la N. O parcurgere Euler a
    acestui arbore se face astfel:
    
    - Se tipareste radacina arborelui;
    - Pentru fiecare dintre fiii radacinii:
         - Se parcurge dupa aceeasi metoda subarborele care are drept radacina
           fiul respectiv;
         - Se tipareste radacina.
    
    De exemplu, sa consideram arborele cu 7 noduri:
    
                 5
               /   \
             3       7
           / | \     |
         6   1   2   4
    
    Atunci parcurgerea Euler este: 5 3 6 3 1 3 2 3 5 7 4 7 5.
    
    Problema cere ca, dandu-se un numar N si o succesiune de numere, sa se
    spuna daca succesiunea reprezinta o parcurgere Euler corecta a unui
    arbore cu N noduri si, in caz afirmativ, sa se reconstituie arborele.
    
    DATE DE INTRARE: Fisierul text EULER.IN contine datele:
    N                              // 1<=N<=1000 (una mie)
    numar numar ... numar          // O succesiune de numere cuprinse intre
                                      1 si N. Numarul de numere este necunoscut.
    
    DATELE DE IESIRE: Fisierul text EULER.OUT va contine pe prima linie
    unul din cuvintele DA sau NU, dupa cum exista sau nu un arbore a
    carui parcurgere Euler sa fie tocmai succesiunea de numere data. Daca
    raspunsul este afirmativ, pe urmatoarele N-1 linii se vor afisa
    muchiile arborelui, in ordinea in care le exploreaza parcurgerea
    Euler. Pentru fiecare muchie se vor tipari nodul parinte si nodul fiu
    (in aceasta ordine), separate printr-un spatiu.
    
    EXEMPLE:
    EULER.IN                        EULER.OUT
    7                               DA
    5 3 6 3 1 3 2 3 5 7 4 7 5       5 3
                                    3 6
                                    3 1
                                    3 2
                                    5 7
                                    7 4
    
    EULER.IN                        EULER.OUT
    3                               NU
    1 2 3 1 2 3 1 2 3 1 2 3
    
    TIMP DE RULARE: O secunda.
    COMPLEXITATE:   O(N)