#1643
Tromino
Bulbuka a primit de curând cadou un infinit de tromino-uri în formă de L
. După ce s-a jucat un timp cu ele, a ajuns la următoarea concluzie: poate să acopere cu tromino-uri o tablă de dimensiuni 2
K
x2
K
aproape complet (mai puţin un pătrăţel de dimensiune 1x1
). Deşteapta de Bulbuka are un algoritm pentru asta: porneşte de la o configuraţie 2
K-1
x2
K-1
, o copiază de încă 3
ori, apoi roteşte 2
dintre copii şi la sfârşit, adaugă un tromino la mijloc (v-a făcut un desen mai jos, ca să înţelegeţi mai bine, pentru K = 1
, 2
şi 3
). Pornind de la o configuraţie de acest tip, ea a observat că poate roti la 90
o
câte un tromino, în sensul acelor de ceasornic sau invers, doar dacă după rotire încape înapoi pe tablă. Folosind astfel de rotaţii, pătrăţelul lipsă poate ajunge pe orice poziţie de pe tablă.
Bulbuka vă pune acum Q
întrebări de tipul: care este numărul minim de rotaţii necesare pentru ca pătrăţelul lipsă să ajungă de la coordonatele (S
R
,S
C
)
la coordonatele (F
R
,F
C
)
?
Problema | Tromino | Operații I/O |
tromino.in /tromino.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 32 MB
/
Stivă 8 MB
|
Id soluție | #39376915 | Utilizator | |
Fișier | tromino.cpp | Dimensiune | 446 B |
Data încărcării | 07 Noiembrie 2022, 12:40 | Scor / rezultat | Eroare de compilare |
tromino.cpp: In function 'int main()': tromino.cpp:25:5: error: 'cout' was not declared in this scope cout<<s; ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Tromino face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:
Suma punctajelor acordate pe testele utilizate pentru verificare este 100. Astfel, soluția ta poate obține cel mult 100 de puncte, caz în care se poate considera corectă.