Koniec kola: 16. jún 2025 23:59
2 dni
Počet bodov:
Popis:  12b
Program:  8b

Pokojne sedíte vo svojej kancelárii a vychutnávate si kávu. Ste radi, že vás práve povýšili na CEO celoštátnej firmy „Kolosálne Spojenie Psikov“ a užívate si výhľad zo svojho okna. Spomínate si, ako ste začínali pracovať pre túto firmu, ktorá rozdeľuje elektrinu do všetkých miest nášho milovaného štátu. Pamätáte si výstavbu masívnej elektrárne a pokladanie káblov medzi našimi malebnými mestami.

Zrazu začujete krik a do vašej kancelárie vbehne vaša sekretárka Miška s desivou správou: gigantická elektráreň má problémy a jej produkcia elektriny kolíše. To môže viesť k preťaženiu siete a následným explóziám rozvodných staníc. Vypnúť elektráreň nie je možné, pretože by to zruinovalo vašu firmu. Našťastie vás napadne riešenie:

Každé mesto má rozvodnú stanicu, ktorú viete na diaľku vypnúť. Tým odpojíte mesto od siete, čím riskujete kritiku. Aby ste predišli kolapsu, potrebujete vypínať mestá v takom poradí, že ak odpojíte od siete prvých \(j\) miest v poradí, všetky zvyšné mesta zostanú spojené s elektrárňou.

Úloha

Elektrická sieť pozostáva z \(n\) miest, očíslovaných od \(0\) po \(n-1\), \(m\) káblov a práve jednej elektrárne, ktorá sa nachádza v meste \(k\). Elektrina prúdi od elektrárne do všetkých miest, do ktorých sa z nej dá dostať káblom (káble vedia prenášať energiu obojsmerne).

Keď vypneme mesto od elektriny, vypneme všetky káble ktoré cez neho vedú, a teda cez neho nesmie ani prúdiť elektrina do iných miest.

Nájdite postupnosť v ktorej vieme odpájať mestá od elektriny, tak aby pre každé \(1 \leq j \leq n\) platilo, že ak od elektriny odpojíme prvých \(j\) miest, neovplyvníme tak elektrinu do zvyšných \(n-j\) miest.

Všimnite si, že ak od elektriny odpojíte mesto s elektrárňou, do ďalších miest už elektrina ísť nevie (nemá odkiaľ).

Formát vstupu

  • Prvý riadok obsahuje čísla \(1 \leq n \leq 10^5\) (počet miest), \(0\leq m \leq \min(2\cdot 10^5, \frac{n(n-1)}{2})\) (počet káblov) a \(0\leq k\leq n - 1\) (číslo mesta s elektrárňou), oddelené medzerou.
  • Nasleduje \(m\) riadkov s dvojicami čísel \(0\leq a_i\neq b_i\leq n-1\) oddelených medzerou, označujúcich, že medzi mestami \(a_i\) a \(b_i\) sa nachádza kábel.

Je garantované, že v zadanej elektrickej sieti má každé mesto prístup k elektrine.

Formát výstupu

Vypíšte jeden riadok v ktorom sa nachádza \(n\) medzerami oddelených čísel: postupnosť v ktorom vieme odpájať mestá od elektriny.

V prípade, že existuje viac postupností, vypíšte ľubovoľnú.

Malé varovanie

V prípade, že používate python a rekurziu, nezabudnite, že prednadstavený limit rekurzie v pythone je \(1000\), a pre väčšie hĺbky ju treba manuálne nastaviť v programe cez sys.setrecursionlimit.

Bodovanie a obmedzenia

Existujú štyri testovacie sady, každá za dva body, v ktorých platia nasledovné obmedzenia:

Sada 1 2 3 4
\(1 \leq N \leq\) \(10\) \(10^5\) \(200\) \(10^5\)
\(1 \leq M \leq\) \(45\) \(10^5\) \(1\,000\) \(2\cdot 10^5\)

Zároveň, v druhej sade navyše platí, že každé mesto je prepojené káblami s práve dvoma inými mestami.

Príklady

Input:

3 3 1
0 1
1 2
2 0

Output:

0 2 1

Tento vstup by sa mohol nachádzať v druhej sade. Keď odpojím od energie mesto číslo \(0\), elektrina vie medzi elektrárňou (v meste \(1\)) a mestom \(2\) prúdiť cez priamy kábel. Keď následne odpojíme mesto \(2\), v meste \(1\) stále je elektrina, lebo sa v ňom nachádza elektráreň. Napokon, keď vypneme elektráreň, ovplyvní to len to mesto, v ktorom sa nachádza.

Input:

3 2 2
0 1
1 2

Output:

0 1 2

Všimnite si, že nemôžeme najskôr odpojiť mesto \(1\), keďže jediný spôsob, akým sa elektrina vie dostať do mesta \(0\) je cez mesto \(1\).

Input:

2 1 0
0 1

Output:

1 0

Nemáme na výber. Najskôr musíme vypnúť elektrinu v meste bez elektrárne

Input:

1 0 0

Output:

0

Máme jediné mesto, v ktorom je elektráreň.

Input:

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

Output:

0 7 6 1 5 4 3 2

Je možné že pre nejaký vstup existuje viacero správnych riešení. Akékoľvek z nich bude akceptované.

Odovzdávanie

Na odovzdávanie sa musíš prihlásiť

Otázky a diskusia

Po skončení kola budete mať príležitosť na diskutovanie o riešeniach v diskusii pod vzorovým riešením.