Zoznam úloh

4. Zašpinení programátori

Kolo už skončilo. Môžeš si pozrieť vzorové riešenie.

Zlé jazyky hovoria, že programátori sa neumývajú. Celé dni a noci vraj nerobia nič iné, iba sa aktívne vyhýbajú sprche. To ale vôbec nie je pravda! Kde sa nabrali také hrozné fámy? Programátori sú predsa čistotní! Vedci z Katedry Sprchovania a Plávania sa teda rozhodli vyšetriť, ako to naozaj je.

V sprche používanej $$n$$ programátormi je kopa sprchových gélov poukladaných jeden na druhom. Vždy, keď sa niekto sprchuje, vyberie svoj sprchový gél z kopy, čím sa všetky gély, ktoré boli nad ním, posunú nižšie. No a keď sa dosprchuje, položí svoj gél na samý vrch kopy. Každý programátor sa pritom sprchuje najviac raz denne (inak by sa rozpustil, však áno) a v kope má práve jeden vlastný sprchový gél, ktorý je označený tak, aby si ho nepomýlil.

Vedci si zaznamenali, ako vyzerala kopa gélov ráno a ako vyzerala večer, po tom ako sa všetci programátori (ktorí chceli) dosprchovali. Z týchto údajov chcú zistiť, koľko najviac a koľko najmenej programátorov sa počas dňa mohlo osprchovať.

Úloha

Na vstupe dostanete dva popisy kopy so sprchovými gélmi, jeden z rána a jeden z večera.

Každý sprchový gél je označený jedným číslom od $$1$$ po $$n$$. Čísla sa vrámci jedného popisu neopakujú. Popisy ranného a večerného zásobníka budú teda dve permutácie čísiel od $$1$$ po $$n$$. Zistite, koľko najmenej a koľko najviac programátorov sa mohlo počas dňa osprchovať, aby to zodpovedalo danému stavu zásobníka.

Formát vstupu

Prvý riadok vstupu obsahuje prirodzené číslo $$n$$, udávajúce počet programátorov a teda aj počet sprchových gélov v kope.

Ďalšie dva riadky obsahujú popis kopy ráno a večer – permutáciu $$n$$ čísiel od $$1$$ po $$n$$ oddelených medzerami. Čísla sú napísané v poradí od spodku kopy po vrch.

Číslo sady 1 2 3 4 5 6
Počet gélov ($$n$$) $$5$$ $$50$$ $$500$$ $$5\,000$$ $$50\,000$$ $$500\,000$$

Formát výstupu

Vypíšte dva riadky, každý obsahujúci jedno celé číslo. V prvom riadku bude najmenší počet programátorov, ktorí sa mohli v ten deň osprchovať, v druhom najväčší možný počet.

Príklad

Input:

5
1 5 3 2 4
1 3 4 5 2

Output:

2
5

Presunutím jedného čísla z prvej permutácie na jej koniec sa nám nikdy nepodarí vytvoriť druhú permutáciu. Sprchovať sa preto museli aspoň dvaja programátori a to najskôr programátor s gélom číslo 5 a potom s gélom číslo 2.

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

Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.

Kontakt
Ďalšie projekty