Informatika gyűjtemény

Egy szinttel feljebb Megoldás

2004050607080910

NézetNyomtat

Algoritmus

Az ajtóknak két állapota van, tehát a labirintus kétféle alaprajzú lehet egy adott pillanatban. Csinálunk egy kétemeletes labirintust, aminek emeletei az ajtók kétféle állapotának felelnek meg, és "kapcsoló" mezőre lépve "teleportálunk" a másik emeletre.
Ezen a "kétemeletes" gráfon egyszerű szélességi bejárással található meg a legrövidebb út. A bejárás tényleg jó, egy adott emeleten nincs értelme kétszer ugyanarra a mezőre lépni, mert akkor az útban lenne egy kihagyható "hurok". (Az viszont lehetséges, hogy ugyanarra a mezőre mindkét emeleten rálépünk.)

Kódok

Kriván Bálint (C#): labirintus.cs
Uray János (C++): labirintus.cpp