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

A leszámolás

A térkép segítségével könnyedén megtaláltátok a vezérek termét. A terem most még üres, de néhány óra múlva megkezdődik a Gyűlés ahol tiszteletét teszi az alvilág összes befolyásos alakja. A terem közepén egy hatalmas asztal található mely körül 12 hely van. Az asztal négy sarka különböző jellel van megjelölve annak érdekében, hogy a 4 nagy terroristaklán tagjai tudják, hogy hol a helyük. Ha a klántagok nem a nekik megfelelő helyre ülnek le, úgy a közöttük feszülő ellentétek kirobbannak és leszámolnak egymással. Így a Ti feladatotok az lesz, hogy jól összekuszáljátok az ültetési sorrendet és így hagyjátok, hogy "a probléma megoldja önmagát".

Input

A bemenet egyetlen, sor vége karakterrel lezárt sor, mely 12 darab, szóközzel elválasztott, ötkarakteres stringet tartalmaz. A string minden karaktere az angol ABC betűiből kerül ki, minden szó első karaktere nagybetű, a többi kicsi.

Output

A kimenet egyetlen sor, mely a bemenetként megadott 12 stringet tartalmazza egyetlen szóközzel elválasztva a lenti szabályok szerint megadott sorrendben.

Szabályok

  • Az asztal négyszögletű és mindegyik oldalán 2-2 szék van, illetve a sarkokon 1-1. A székek számozása az asztal "bal felső" sarkától kezdődik 1-es sorszámmal és az óramutató járásával megegyező irányban halad. Így a bal felső sarok alatti mező lesz a 12-es sorszámú szék.
  • A kimenetben szereplő nevek sorrendjének követnie kell ezt a számozást, így a kiírandó első név az 1-es széken ülő neve, a második név a 2-es széken ülőé, stb.
  • A bemenetben szereplő neveket balról jobbra haladva, egyesével kell feldolgozni és az alábbi szabályok szerint kell leültetni őket:
    • Akiknek a neve a "QUTHCRDMZ" karakterek valamelyikével kezdődik őket "minél közelebb" kell ültetni a bal felső (1.) székhez.
    • Akiknek a neve a "WEVOXING" karakterek valamelyikével kezdődik őket "minél közelebb" kell ültetni a jobb felső (4.) székhez.
    • Akiknek a neve a "JFABKPLY" karakterek valamelyikével kezdődik őket "minél közelebb" kell ültetni a jobb alsó (7.) székhez
    • Végül akiknek a neve "S" karakterrel kezdődik őket "minél közelebb" kell ültetni a bal alsó (10.) székhez.
    • A távolság mérése egyszerűen "székenként" történik, tehát úgy, hogy "minimum hány széknyire ülök a nekem kijelölt saroktól?"
    • Ha egy embert két helyre is leültethetünk, úgy a neki kijelölt sarokhoz képesti, óramutató járásával ellentétes helyet preferálja.
Összefoglalva: a fentiek értelmében az ültetés lényegében úgy zajlik, hogy mindenkit megpróbálunk az általa preferált sarokhoz a lehető legközelebb leültetni. Ha a helyek foglaltak akkor megkeressük azt a szabad széket mely a legkisebb távolságra van az ember "sarkától" és oda ültetjük le. Két egyforma távolságra eső szék esetén a már említett óramutató járásával ellenkező irányban lévőt választjuk (például ha valakit a 4-es székre ültetnénk le, de az már foglalt, viszont a 3-es és az 5-ös szabad, akkor mivel mindkettő 1 széknyi távolságra van a 4-estől, így az óramutató járásával ellentétes 3-as széket választjuk).

Példa

Input:
  1. Yojne Xenna Verap Ebyam Teseb Ycuag Onets Skcaw Yrovi Tpets Lizuf Girnu
letöltés szöveges állományként Output:
  1. Teseb Onets Verap Xenna Ebyam Ycuag Yojne Yrovi Lizuf Skcaw Girnu Tpets
letöltés szöveges állományként

Magyarázat

Részletes magyarázat helyett egyszerűen bemutatjuk az elkészült ültetési sorrendet és megjelöljük, hogy ki hanyadjára ült le.

Teseb (5) Onets (7) Verap (3) Xenna (2) Tpets (10) Ebyam (4) Girnu (12) Ycuag (6) Skcaw (8) Lizuf (11) Yrovi (9) Yojne (1)
Debreceni Egyetem, Informatikai Kar, v. 2024.09.30.