Zadanie
Imaginárne dračie zápasy
Počet bodov: 65
V dračej škôlke dostali malí dráčikovia obľúbenú videohru - Imaginárne dračie zápasy (IDZ). IDZ naraz hrajú dvaja hráči proti sebe.
Pani učiteľka si všimla že hranie IDZ má na malé dráčiky zvláštny vplyv. Ak je malý dráčik unavený tak jeden zápas IDZ ho nabudí ba až priam rozohní. Naopak ak je malý dráčik na začiatku hrania rozohnení tak sa počas zápasu unaví.
Pani učiteľka sa rozhodla tento efekt využiť. Chce usporiadať sériu zápasov, aby na konci boli všetci dráčikovia unavení a pripravení na popoludňajší spánok. Jej cieľom je zorganizovať čo najmenej zápasov, aby to bolo čo najskôr.
Zorganizovanie takýchto hier však nie je jednoduché, keďže dráčiky sú vyberavé a nechcú sa hrať s hocikým. Preto pani učiteľka vyberie do každej hry jedného dráčika a výber protihráča nechá na ňom. Všetkým je však jasné že každý dráčik si ako protihráča zvolí svojho najlepšieho kamaráta. Pani učiteľka však pozná svoju triedu a tak aj vie, kto je čí najlepší kamarát. Pomôžte jej určiť, ktorých dráčikov má do jednotlivých kôl nominovať tak, aby čo najskôr unavila všetkých dráčikov.
Úloha
Na vstupe dostanete:
- Počet dráčikov v škôlke.
- Aktuálny stav každého dráčika (rozohnený alebo unavený).
- Kto je najlepší kamarát každého dráčika.
Vašou úlohou je vyrobiť najkratší zoznam dráčikov, ktorých má pani učiteľka nominovať do zápasov, aby boli na konci všetci dráčici unavení. Ak to nie je možné, vypíšte -1.
Vstup a Výstup
Prvý riadok vstupu obsahuje jedno celé číslo \(N\) (\(1 \leq N \leq 200\ 000\)) – počet dráčikov.
V druhom riadku je reťazec dĺžky \(N\) z cifier ‘0’ a ‘1’. Ak je \(i\)-ta cifra ‘1’ tak je dráčik s číslom \(i\) rozohnený, ináč je unavený. V treťom riadku je \(N\) čísel \(1 \le x_i \le N\). Dráčik s číslom \(i\) má za najlepšieho kamaráta dráčika číslo \(x_i\). Žiaden dráčik sa nekamaráti sám so sebou. Dráčikov číslujeme od \(1\).
Ak nie je možné aby na konci boli všetci dráčici unavení tak vypíšte jeden riadok a na ňom číslo \(-1\). Inak vypíšte v prvom riadku číslo \(k\) – najmenší počet zápasov ktoré musí učiteľka zorganizovať. V druhom riadku vypíšte \(k\) čísiel reprezentujúcich nominácie pani učiteľky.
Obmedzenia
Vstupy úlohy sa skladajú z štyroch sád, v ktorých platia nasledujúce obmedzenia:
Sada | 1 | 2 | 3 | 4 |
---|---|---|---|---|
\(1 \leq N \leq\) | \(20\) | \(50\) | \(2\ 000\) | \(200\ 000\) |
Príklad
Input:
5
11011
3 1 1 2 1
Output:
2
4 5
Dráčik 4 sa zahraje s dráčikom 2 a tým sa obaja unavia. Dráčik 5 sa zahraje s dráčikom 1 a tým sa obaja unavia.
Input:
5
11111
3 1 1 2 1
Output:
-1
Všimnite si že počet rozohnených dráčikov je na začiatku nepárny. V každom zápase zmeníme rozohnenosť dvom dráčikom a tým sa nám nezmení táto parita. Preto po každom zápase bude aspoň jeden dráčik rozohnený.
Pre odovzdávanie sa musíš prihlásiť.