4. naloga

Premešani mozaik

Umetnik Polde je sestavil mozaik v obliki pravokotne kariraste mreže, široke w stolpcev in visoke h vrstic; v vsaki celici mreže je kvadratna ploščica v eni od B možnih barv, zato lahko barve predstavimo kar s števili od 1 do B. Na Poldetovem mozaiku je bila j-ta ploščica v i-ti vrstici barve bij.

Žal so v noči pred otvoritvijo Poldetove razstave nepridipravi vdrli v galerijo in premešali ploščice njegovega mozaika; zdaj je j-ta ploščica v i-ti vrstici barve aij. Poudarimo, da gre še vedno za iste ploščice, le drugače so razporejene po pravokotni mreži (torej se število ploščic posamezne barve ni spremenilo).

Polde se je odločil, da bo povrnil mozaik v prvotno stanje, vendar bo iz tega naredil performans. Mozaik bo spreminjal po korakih, pri čemer v vsakem koraku zamenja med seboj dve sosednji ploščici (to sta taki, ki imata skupno eno od stranic).

Opiši postopek (ali napiši program ali podprogram oz. funkcijo, če ti je lažje), ki kot vhodne podatke dobi trenutno stanje mreže (vse aij) in njeno prvotno stanje (vse bij) ter izpiše poljubno zaporedje takšnih zamenjav, s katerim lahko Polde povrne mozaik v prvotno stanje. Podrobnosti izpisa niso pomembne, da bo le razvidno, kateri dve ploščici naj na posameznem koraku zamenja.