Programozó versenyek

DEIK Regionális Programozó Csapatverseny, középiskolai kategória, 2024. december 1.

2024. december 1. 10:00 – 2024. december 1. 15:00

Szavazás

Mivel megakadályozni nem tudtuk a kibertámadást és az adatainkhoz hozzájutottak a támadók, így úgy döntöttek, hogy az eddigi, csupán online-térben történő akciójuk helyett egy valós, fizikai támadást is indítanak ellenünk, hogy megpróbálják elrabolni mindegyik csapat legjobb versenyzőjét. Azonban az AI botok által letöltött logok nem tartalmaztak ilyen adatokat, így Rátok bízták, hogy készítsetek egy olyan algoritmust, mellyel magatok között szavazva eldönthetitek, hogy ki a legjobb. Az algoritmus általánosítva az alábbiak szerint működik:

  • Mindegyik versenyző rangsorolja az összes jelöltet legjobbtól a legrosszabb felé. (Megjegyzés: előfordulhat, hogy több jelölt van, mint amennyi szavazó.)
  • n jelölt esetén minden egyes különálló rangsorban a legmagasabb rangú ember n-1 pontot kap, a következő n-2-t,...stb. egészen a legalacsonyabb rangúig akinek 0 pont jár.
  • Összesítjük a rangsorok között az egyes jelöltek értékeit (tehát ha például John rangjai 3,4,0,0,1, akkor John végső értéke 8).
  • Az így kapott összesített rangokból átlagot számolunk.
  • A lehetséges jelöltek listájából kivesszük mindazokat akiknek az értéke az átlag alatt van.
  • Végül az eljárást folytatjuk a megmaradt jelöltekkel egészen addig amíg vagy egyetlen jelölt marad, vagy mindenkinek ugyanannyi nem lesz az értéke.
Megjegyzés: a törlés után nem állítunk új rangsort, egyszerűen a megmaradt rangsorban pontozzuk át a versenyzőket. Lásd a lenti példát a pontos magyarázatért.

Input

A bemenet két egységből áll (minden sor végét egy sorvége karakter zár):

  • Az első sor két, szóközzel elválasztott pozitív egész n és m számot tartalmaz. Mindkét szám legfeljebb 255.
  • A következő n sor mindegyike m darab, szóközzel elválasztott szót (stringet) tartalmaz. Egy-egy ilyen sor adja meg egy-egy csapattag személyes ranglistáját, balról jobbra csökkenő sorrendben.

Output

A kimenet egy string, mely az eljárás végén megmaradó utolsó elem neve ("a legjobb csapattag neve"). Amennyiben több elem is marad a végén úgy azokat ABC szerinti csökkenő sorrendben, egyetlen szóközzel szükséges felsorolni.

Példa

Input:
  1. 3 4
  2. John Bob Alice Lucy
  3. Lucy Bob John Alice
  4. Alice John Bob Lucy
letöltés szöveges állományként Output:
  1. John
letöltés szöveges állományként

Magyarázat

LIST: John Bob Alice Lucy Lucy Bob John Alice Alice John Bob Lucy Alice: 1+0+3 = 4 Bob: 2+2+1 = 5 John: 3+1+2 = 6 Lucy: 0+3+0 = 3 AVG: (4+5+6+3)/4 = 4.5 DEL: Alice, Lucy LIST: John Bob Bob John John Bob Bob: 0+1+0 = 1 John: 1+0+1 = 2 AVG: (1+2)/2 = 1.5 DEL: Bob LIST: John
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.