Zadanie

Ilavské problémy

Počet bodov: 55, časový limit: 1000ms

V Ilave stojí väzenie. A ako to už v takých väzeniach býva, bývajú v nich väzni. Bol by to na Ilavskom hrade1 pokojný život, kebyže nie tých väzňov! Intrigujú, robia problémy, dohadujú sa, utekajú a iné nepríjemné záležitosti.

Nové vedenie väzenia sa rozhodlo, že s tým raz a navždy urobí poriadok. Zbúra niektoré chodby vo väzení, do styku so sebou príde menej väzňov a hneď bude po všetkých problémoch!

Lenže, ako sa to s problémami býva, ich riešenia nebývajú tak jednoduché, ako by sme chceli. A tak aj tuná prišiel riaditeľ na istý zádrheľ. Každý väzeň sa potrebuje totiž niekde sprchovať a niekde jesť. Niektoré bloky ciel obsahujú sprchy a niektoré iné jedálne.

Zistite, koľko najviac chodieb môže riaditeľ zbúrať, tak, aby každý väzeň mal k dispozícii ako jedlo, tak aj hygienu.

Vstup a výstup

Väzenie si môžeme predstaviť ako \(N\) blokov ciel, poprepájaných \(N - 1\) chodbami. Na začiatku sa z každého bloku dá dostať do každého. V niektorých \(J\) blokoch je jedáleň, v niektorých iných \(S\) blokoch sú sprchy.

Na vstupe dostanete v prvom riadku čísla \(N\), \(J\) a \(S\) oddelené medzerami.

Na ďalšom riadku dostanete \(J\) čísel oddelených medzerami – čísla blokov, v ktorých je jedáleň a na ďalšom riadku zas \(S\) čísel oddelených medzerami – čísla blokov, v ktorých je jedáleň.

Na posledných \(N - 1\) riadkoch sú medzerami oddelené čísla ciel \(a_i\) a \(b_i\), čísla blokov poprepájaných (obojsmernou) chodbou.

Na výstup vypíšte na prvom riadku číslo \(k\) - koľko najviac chodieb vieme zbúrať. Na ďalších \(k\) riadkoch vypíšte \(k\) chodieb – tie ktoré môžme zbúrať. Ak existuje viac riešení s optimálnym \(k\) vypíšte ľubovoľné.

Obmedzenia

\(2 \leq N \leq 100,000\) \(L + S \leq N\) \(L, S \geq 1\) \(0 \leq a_i, b_i < N\)

V \(30 \%\) vstupoch bude plati, že \(a_i = i\) a \(b_i = i + 1\), t.j. že väzenie bude čiara.

V \(40 \%\) vstupoch bude \(N \leq 1000\).

Príklad

Input:

7 2 2
0 5
1 2
0 1
0 2
1 3
1 4
2 5
2 6

Output:

1
0 2

Tu máme dve jedálne aj dve sprchy, vieme rozdeliť väzňov na najviac dve skupiny, pričom musíme zbúrať chodbu 0-2

Input:

6 3 3
2 0 1
3 4 5
0 1
1 2
0 3
0 4
4 5

Output:

0

Tu máme síce jedální aj spŕch síce veľa, rozdeliť väzňov ale nevieme.

Input:

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

Output:

1
5 4 

Rovnako správne by bolo aj zbúrať stenu 3-4.


  1. a.k.a. väzení

Pre odovzdávanie sa musíš prihlásiť.