Feladat: I.361 Korcsoport: - Nehézségi fok: -
Füzet: 2014/december, 542 - 543. oldal  PDF  |  MathML 

A szöveg csak Firefox böngészőben jelenik meg helyesen. Használja a fenti PDF file-ra mutató link-et a letöltésre.

A koronglövés nevű játékot egy ember játssza egy N csúcsú egyszerű gráfon (1N20). A játék a következőképp néz ki: a gráf minden csúcsán van néhány korong. Egy lépésben a játékos fog egy tetszőleges csúcsot, és ha azon legalább annyi korong van, mint a csúcs szomszédainak száma (azon csúcsok, melyekkel éllel van összekötve), akkor minden szomszédnak ad egy-egy korongot. Akkor nyer a játékos, ha már nem tud ilyen lépést végrehajtani. Adjuk meg, hogy tud-e nyerni egy bizonyos alapállásból a játékos.
Segítség: ha tud nyerni a játékos, akkor bármilyen sorrendben választhatja a csúcsokat, amikkel lép, előbb-utóbb véget ér a játék. Ezt használjuk fel. Továbbá könnyítésképpen, ha ezzel a módszerrel 1000 lépés alatt nem fejeződik be a játék, akkor írjuk ki azt, hogy NEM tud nyerni.
A program a standard bemenet első sorából olvassa be az N és M (élek száma) számokat. A következő N sorban a gráf egyes csúcsain lévő korongok számát, majd a következő M sorból a gráf leírását: minden sorban egy a és egy b szám szerepel, ami azt jelenti, hogy az a csúcs szomszédja b, és a b csúcs szomszédja a. A program írja ki a standard output első sorába a NEM szót, amennyiben a segítségben leírt módszerrel 1000 lépés alatt nem fejeződik be a játék. Ha befejeződik, akkor az IGEN szót, és az alatta lévő N sorban pedig a végállapotban az egyes csúcsokon lévő számokat a bemenet sorrendjében.

 
Példa bemenet:   Kimenet:   4 3   IGEN   2   0   0   2   0   0   0   0   1 2   3 2   2 4   Példa bemenet:   Kimenet:   2 1   NEM   5   0   1 2   
 

Beküldendő egy tömörített i361.zip állományban a program forráskódja (i361.pas, i361.cpp, ...) az .exe és más, a fordító által generált állományok nélkül, valamint a program rövid dokumentációja (i361.txt, i361.pdf, ...), amely a fentieken túl megadja, hogy a forrás mely fejlesztői környezetben fordítható.