#1643
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 2Kx2K 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 2K-1x2K-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 90o 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 (SR,SC) la coordonatele (FR,FC)?

| 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 | #58761246 | Utilizator | |
| Fișier | tromino.cpp | Dimensiune | 5.55 KB |
| Data încărcării | 03 August 2025, 12:46 | Scor/rezultat | 90 puncte |
tromino.cpp: In function 'void setup_files()': tromino.cpp:10:38: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("tromino.in", "r", stdin); ^ tromino.cpp:11:40: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("tromino.out", "w", stdout); ^
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0 secunde | OK. | 5 | 5 | ||
| 2 | 0 secunde | OK. | 5 | 5 | ||
| 3 | 0.004 secunde | OK. | 5 | 5 | ||
| 4 | 0.004 secunde | OK. | 5 | 5 | ||
| 5 | 0.004 secunde | OK. | 5 | 5 | ||
| 6 | 0 secunde | OK. | 5 | 5 | ||
| 7 | 0 secunde | OK. | 5 | 5 | ||
| 8 | 0.076 secunde | OK. | 5 | 5 | ||
| 9 | 0.004 secunde | OK. | 5 | 5 | ||
| 10 | 0.004 secunde | OK. | 5 | 5 | ||
| 11 | 0.012 secunde | OK. | 5 | 5 | ||
| 12 | 0.016 secunde | OK. | 5 | 5 | ||
| 13 | 0.028 secunde | OK. | 5 | 5 | ||
| 14 | 0.036 secunde | OK. | 5 | 5 | ||
| 15 | 0.452 secunde | OK. | 5 | 5 | ||
| 16 | 0.468 secunde | OK. | 5 | 5 | ||
| 17 | 0.392 secunde | OK. | 5 | 5 | ||
| 18 | Depășit | Limita de timp depășită | 5 | 0 | ||
| 19 | 0 secunde | OK. | 5 | 5 | ||
| 20 | 0.584 secunde | Caught fatal signal 11 | 5 | 0 | ||
| Punctaj total | 90 | |||||
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ă.