RedPanda

Time limit: 1s Memory limit: 256MB Input: redpanda.in Output: redpanda.out

Undeva într-o pădure din Himalaya, un panda roșu este nevoit să se cațere într-un arbore foarte înalt. Din păcate, acestui panda îi este frică de înălțimi și vă zice că nu are curaj să urce mai sus de nivelul KK. Astfel, se întreabă dacă l-ați putea ajuta să-și imagineze cum poate face arborele să fie mai puțin înalt.

Se dă descrierea unui arbore cu rădăcină fixă în nodul 11. Considerăm nivelul rădăcinii ca fiind nivelul 11, nivelul copiilor săi ca nivelul 22 și așa mai departe. Arborele poate fi modificat prin următoarea operație în doi pași:

  1. Se taie oricare muchie din graf.
  2. Se adaugă o nouă muchie în graf.

Cerință

Se cer numărul minim de operații și descrierea acestora pentru a transforma arborele dat într-un arbore unde toate nodurile au nivelul cel mult KK.

Date de intrare

Pe prima linie a fișierului de intrare redpanda.in se dau NN, care reprezintă numărul de noduri din arbore, respectiv KK, care este nivelul maxim dorit. Pe următoarele N1N - 1 linii se regăsesc câte două numere întregi XX și YY, reprezentând o muchie din arbore între nodurile XX și YY.

Date de ieșire

Pe prima linie a fișierului de ieșire redpanda.out se află numărul minim de operații SS. Pe următoarele SS linii se vor afla câte patru întregi AA, BB, CC și DD, ce descriu operația: se taie muchia dintre AA și BB și se adaugă muchie între CC și DD.

Operațiile descrise trebuie să respecte următoarele reguli:

  • Să nu taie o muchie ce nu există.
  • Să nu adauge o muchie deja existentă.
  • Să nu adauge o muchie de la un nod la el însuși.
  • La final graful rezultat să fie un arbore. După prima operație și până înainte de ultima operație, graful are voie să nu fie arbore.

Restricții și precizări

  • 2N300 0002 \leq N \leq 300 \ 000
  • 1A,BN1 \leq A, B \leq N
  • 2KN2 \leq K \leq N
# Punctaj Restricții
1 7 K=2K = 2
2 12 Muchiile arborelui sunt 12N1 − 2 − \ldots − N.
3 13 K>N2K > \frac{N}{2}
4 17 N1 000N \leq 1\ 000
5 51 Fără restricții suplimentare

Exemplu

redpanda.in

8 4
1 2
2 3
3 4
4 5
4 6
6 7
7 8

redpanda.out

1
3 4 6 1

Explicație

Tăiem muchia dintre nodurile 33 și 44 și adăugăm o nouă muchie intre nodurile 66 și 11.

Log in or sign up to be able to send submissions!