Programozó versenyek

Magas szintű programozási nyelvek 2, 2015. október 26., H18 ZH

2015. október 26. 18:05 – 2015. október 26. 19:40

Fejesek 2

Az általános iskolai testnevelésórán a tornatanár nagyság szerint növekvő sorrendbe állítja a nebulókat. A sor elején áll a legalacsonyabb gyerek, a sor végén a legmagasabb. A sor elején álló gyerek kivételével a többieket megkéri, hogy mindegyikük jegyezze meg az előtte álló társa nevét (a gyerekek nevei szerencsére különböznek egymástól), hogy legközelebb könnyedén be tudjanak állni a sorba. Miután a gyerekek szépen elrendeződtek a sorban, a tanár a sor elejétől kezdve felváltva hol egy piros, hol egy kék színű sapkát húz az egymás után sorakozó gyerekek fejére, az első gyerekre piros sapkát húzva.

Írjon programot, amely a standard bemenet első sorából beolvas egy egész számot (n-et), ami a tornasorban álló gyerekek számát határozza meg, a tornasor legelején álló gyerek nevét, valamint egy újabb nevet (ami akár meg is egyezhet az előzővel, a későbbi hivatkozás kedvéért jelöljük most X-szel)! Ezt a három adatot egy-egy pontosvessző választja el egymástól. A következő n – 1 sorban a tornasorban álló gyerekek adatai találhatók az alábbi formában:

név;előtte

A program írja a standard kimenetre azt, hogy az X nevű gyerek hány darab piros sapkás és kék sapkás fejet lát maga előtt, ha a sor elején álló legalacsonyabb társa felé tekint, feltételezve, hogy a gyerekek különböző magasságúak, és mindenki számára biztosított a „jó kilátás” a sor eleje felé! A két adatot egyetlen szóközzel válassza el egymástól!

Példa bemenet

  1. 5;Péter;Barnabás
  2. Gábor;József
  3. Samu;Barnabás
  4. József;Péter
  5. Barnabás;Gábor
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. 2 1
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.