Programozás‎ > ‎Feladatok‎ > ‎Varázslat‎ > ‎

Megoldás

Algoritmus

Működik az egyszerű szimuláció, hiszen rövid elem-sorozatokat kell feldolgoznunk, és nincs túl sok szabály, amit alkalmazni lehet az egyes állapotokban. A következő lépéseket hajtjuk végre minden tesztesetnél:
  • beolvassuk a kombinálódási szabályokat
  • beolvassuk a törlési szabályokat
  • ezután egyesével adjuk hozzá egy listához a megidézett elemeket, és minden elem után
    • először megnézzük, hogy kombinálódik-e az előző elemmel (ha igen, akkor elvégezzük a kombinálódást)
    • majd megnézzük, hogy a pillanatnyilag utolsó elemhez van-e olyan pár a korábbi elemek között, amivel ellentétesek, tehát törlődik a lista
Megjegyzés:
Mivel az alapvető elemek nem alapvető elemekké kombinálódnak, egy lépésben csak egy kombinálódás mehet végbe.

Kódok

Mezei Balázs (c++) mb_varazslat.cpp
Ódor Gergő (c++) og_varazslat.cpp
Dobosy Kristóf (pascal) dk_varazslat.pas
Bágyoni-Szabó Attila (c#) bsza_varazslat.cs
Erben Péter (java) ep_varazslat.java
Varga Erik (c) ve_varazslat.c