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ť.
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.
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$$ |
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.
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.
Korešpondenčný seminár z programovania zastrešuje občianske združenie Trojsten.
Trojsten, o.z.
FMFI UK, Mlynská dolina
842 48 Bratislava
Programátorská súťaž pre základoškolákov
Materiály a úlohy na výučbu programovania
Intenzívny programátorský zážitok v lete