omida

Definitie:

O "omida" este un arbore cu urmatoarea proprietate: exista un lant central astfel încât fiecare nod al arborelui fie apartine lantului central fie este adiacent lantului. Figurile de mai jos ilustreaza doua "omizi", nodurile gri indicând lantul.

"Omida" 1

"Omida" 2
Figura 1
Figura 2

Pot exista mai multe lanturi. De exemplu, un alt lant pentru "omida" 2 este 3-2-5-9.

Cerinte
Scrieti un program care, fiind data o "omida" cu N noduri, va eticheta nodurile cu numere de la 1 la N ce satisfac conditiile:

Mai jos este ilustrat un mod de etichetare a "omidei" 2. Modulele diferentelor sunt indicate pe muchiile respective.

Figura 3

Date de intrare
Fisierul de intrare omida.in contine pe prima linie N, un numar întreg ce indica numarul de noduri. Fiecare dintre urmatoarele N-1 linii contine X Y doua numere întregi, separate printr-un spatiu, reprezentând doua noduri adiacente conectate cu o muchie.

Datele de intrare sunt corecte si arborele dat este o "omida."

Date de iesire
Fisierul de iesire omida.out contine o singura linie care contine L1 L2 ... LN (N numere întregi, separate prin cate un spatiu, unde Li reprezinta eticheta asociata nodului i).

În cazul când exista mai multe solutii, se va prezenta numai una. Daca nu este posibila nici o etichetare, fisierul de iesire va contine pe unica linie cuvântul IMPOSIBIL.

Restrictii
2 <=N <=10000

Exemplu
Fisierul de intrare (omida.in) descrie "omida" din Figura 2, iar fisierul de iesire (omida.out) descrie etichetarea din Figura 3.

omida.in
9
1 2
6 5
5 7
4 2
2 3
8 5
2 5
5 9

omida.out (o solutie posibila)
8 1 5 2 9 4 6 3 7

Timp maxim de executie/test: 0.1 secunde

prof. Emanuela Cerchez

Liceul de Informatica "Grigore Moisil" Iasi

Contact:ema@mail.dntis.ro