#150
Bulbuka este foarte pasionată de gătit deserturi. Ea a decis să facă
(n+2)*(n+2)
brioşe pe care le-a numerotat (cu ciocolată, bineinţeles) în modul următor: primele n*n
brioşe au fost numerotate de la 1
la n*n
, iar restul până la (n+2)*(n+2)
au primit valoarea 0
. De asemenea, după ce au fost gata, Bulbuka nu a putut rezista tentaţiei de a ordona brioşele într-un pătrat cu latura (n+2)
după cum urmează: cele cu 0
pe conturul exterior iar cele numerotate de la 1
la n*n
, în interior, în ordine crescătoare, pe linii, de sus in jos, ca în figura alăturată. Bulbuka a numit această aranjare configuraţia ordonată a brioşelor.
Acest aranjament frumos a durat foarte puţin deoarece, pe când Bulbuka stătea cu spatele, Randomel a amestecat brioşele între ele, într-o ordine aleatoare. Când s-a întors şi a văzut fapta, ea s-a supărat foarte tare şi l-a pedepsit pe Randomel punându-l să le aranjeze la loc cum erau (ca în imagine) folosind doar un set limitat de operaţii: shiftări circulare pe linii şi pe coloane. O shiftare presupune deplasarea circulară la dreapta, pe linie sau în jos, pe coloană, cu cel puţin una şi cel mult n+1
poziţii.
Randomel vă roagă să scrieţi un program care, pentru o aranjare aleatorie a brioşelor, să afişeze shiftările circulare posibile care transformă configuraţia dată într-o configuraţie ordonată.
Urmasii lui Moisil, Iasi, 2013
ID | Utilizator | Problema | Data încărcării | Stare | ||
---|---|---|---|---|---|---|
shift1 | 06 Octombrie 2022, 23:28 | Evaluare finalizată | 100 |