Algoritmul, pas cu pas
Reducerea la treceri între valori consecutive
Áles vizitează camerele în ordinea valorilor: întâi toate cele cu , apoi cele cu , etc. Între camerele cu aceeași valoare se deplasează gratis prin tunele, deci le poate vizita pe toate fără cost. Singura problemă e trecerea de la valoarea la .
Când e nevoie de teleportor pentru ? Din clasa poate ajunge gratis la orice cameră de valoare . De acolo poate folosi o ușă doar dacă vreo cameră de valoare e vecină cu o cameră de valoare . Deci:
Trecerea cere o teleportare exact când nu există nicio pereche de camere vecine cu valorile și .
Numărul minim de teleportări = câte valori nu au nicio astfel de pereche vecină.
Menținerea sub schimbări
Ținem = numărul de muchii ale grilei ale căror capete au valorile și . Răspunsul e numărul de cu ; menținem un contor teleportari al acestora.
La o schimbare a camerei din valoarea veche în , doar cele muchii incidente se modifică. Pentru fiecare vecin cu valoarea :
- scoatem perechea veche : dacă , scade (dacă ajunge la ,
teleportaricrește); - adăugăm perechea nouă : dacă , crește (dacă era ,
teleportariscade).