Programozó versenyek

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

2019. december 8. 10:15 – 2019. december 8. 15:15

Eredménytábla-rekonstrukció

A ProgCont fejlesztői a rendszer egy új verzióján dolgoznak. A szoftver még kezdeti fázisban van, ezért meglehetősen szűk válaszokat ad a kiértékelések során: mindössze annyit közöl a versenyzőkkel, hogy a megoldásuk el lett-e fogadva vagy sem. Sajnos az első bevetésén egy megmagyarázhatatlan hiba történt: összeomlott az eredménytábla. Segíts a szervezőknek abban, hogy a beküldések adataiból rekonstruálni tudják a verseny alakulását egy-egy lekérdezés kiadásával!

A bemenet specifikációja

A bemenet első sorában szerepel a beküldések S, valamint a lekérdezések Q darabszáma (1 ≤ S ≤ 5 000, 1 ≤ Q ≤ 10 000). Ezt pontosan S darab olyan sor követi, mely egy-egy beküldés adatait tartalmazza. Ezek a sorok legfeljebb 50 karakter hosszúak, és a következő adatokat tartalmazzák egy-egy szóközzel elválasztva:

  • a feltöltő csapat neve (szóközöktől mentes sztring),
  • a kiválasztott feladat azonosítója (szóközöktől mentes sztring),
  • a verseny kezdete óta eltelt percek száma (nemnegatív egész, legfeljebb 299),
  • a tesztelés eredménye („true” vagy „false” attól függően, hogy a megoldás elfogadásra került-e vagy sem).

A bemenet utolsó Q sora egy-egy lekérdezés paramétereit tartalmazza időpont csapat formában, ahol az időpont a lekérdezés ideje a verseny kezdete óta eltelt percek számában kifejezve, míg a csapat a lekérdezendő csapat azonosítója.

A kimenet specifikációja

A program minden lekérdezés esetében állapítsa meg, hogy a benne szereplő csapat a megadott időpillanatban milyen adatokkal jelent meg a verseny eredménytábláján! Ezek a sorok a példa kimenetben látható formátumban tartalmazzák

  • a lekérdezésben szereplő csapat azonosítóját,
  • a verseny kezdete óta a lekérdezés időpontjáig eltelt percek számát,
  • a csapat által a lekérdezés időpontjáig megoldott feladatok számát,
  • a beküldési időkből és a sikertelen próbálkozások számából adódó büntetőidőt a lekérdezés időpontjában,
  • valamint a csapat helyezését a lekérdezés időpontjában.

Megjegyzések

  • A csapatok rangsorolása, valamint a büntetőidők megállapítása egy egyszerűsített szabállyal történik. Két csapat közül az végez előrébb, amelyik több feladatra töltött fel helyes megoldást. Azonos sikerességi mutató esetén az a csapat kerül előrébb, aki kevesebb büntetőpontot szerzett. Amennyiben a büntetőidők is megegyeznek, úgy az első elfogadott megoldást hamarabb feltöltő csapat ér el jobb helyezést.
  • Büntetőidőt akkor kap egy csapat egy adott feladat vonatkozásában, ha sikeresen megoldotta azt. A büntetőidő ilyenkor a verseny kezdete óta a helyes megoldás beküldéséig eltelt percek száma, plusz annyiszor 20 perc, ahány hibás próbálkozása volt korábban a csapatnak az adott feladatra. Egy csapat teljes büntetőideje az egyes feladatokhoz tartozó büntetőidők összege.
  • Holtverseny nem alakul ki. A lekérdezésekben csak olyan csapatnevek szerepelnek, akik töltöttek is fel megoldást. Az elfogadott megoldással nem rendelkező csapatok helyezés nélkül jelennek meg (lásd a példa kimenetet).
  • A lekérdezések időpontjai zárt intervallumot jelölnek ki, vagyis a T. percre kiadott lekérdezésekben már szerepelnek a T. percben feltöltött megoldások. A feladatban szereplő összes időpont a [0, 299] intervallumból származik. Egy csapat egy perc alatt több megoldást is feltölthet, és egyetlen csapat sem foglalkozik tovább egy feladattal azután, hogy egy megoldása elfogadásra került.

Példa bemenet

  1. 7 9
  2. TeamC D 40 true
  3. TeamA A 10 false
  4. TeamB B 40 false
  5. TeamA A 15 false
  6. TeamA A 17 true
  7. TeamD A 20 false
  8. TeamE A 13 false
  9. 0 TeamA
  10. 10 TeamA
  11. 15 TeamA
  12. 17 TeamA
  13. 299 TeamA
  14. 299 TeamB
  15. 299 TeamC
  16. 299 TeamD
  17. 299 TeamE
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. TeamA (0): 0 0 -
  2. TeamA (10): 0 0 -
  3. TeamA (15): 0 0 -
  4. TeamA (17): 1 57 #1
  5. TeamA (299): 1 57 #2
  6. TeamB (299): 0 0 -
  7. TeamC (299): 1 40 #1
  8. TeamD (299): 0 0 -
  9. TeamE (299): 0 0 -
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.