#5019
Se dă o rețea de N * M calculatoare, dispuse sub forma unei matrici cu N linii și M coloane, numerotate începând cu 1, între care se pot transfera informații.
Fiecare calculator funcțional are asociat un cod, număr natural. Calculatoarele defecte sunt marcate cu -1 și nu pot participa la transferul de informație.
Transferul de informație între două calculatoare funcționale se face direct, dacă acestea sunt vecine, sau indirect, prin intermediul altor calculatoare funcționale. Două calculatoare sunt vecine dacă se află pe aceeași linie și coloane adiacente sau pe aceeași coloană și linii adiacente, adică calculatorul de la poziția (i, j) este vecin cu cel de la pozițiile: (i + 1, j), (i - 1, j), (i, j + 1) sau (i, j - 1).
Costul transferului de informație între două calculatoare vecine funcționale este 0, dacă cele două coduri diferă prin cel mult un bit în reprezentarea binară, respectiv 1, în caz contrar. Costul transferului de informație între două calculatoare care nu sunt vecine este suma costurilor transferurilor directe intermediare.
Scrieți un program care să determine costul minim necesar pentru transferul informației de la calculatorul de pe poziția (1, 1) la cel de pe poziția (N, M).
Concursul Interjudețean de Matematică și Informatică SEVER-AUREL GROZE 2026
| Problema | bitmove | Operații I/O |
bitmove.in/bitmove.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
| Id soluție | #64632147 | Utilizator | |
| Fișier | bitmove.cpp | Dimensiune | 1.21 KB |
| Data încărcării | 19 Mai 2026, 14:24 | Scor/rezultat | 77 puncte |
| Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
|---|---|---|---|---|---|---|
| 1 | 0.001 secunde | OK. | 4 | 4 | ||
| 2 | 0.001 secunde | OK. | 4 | 4 | ||
| 3 | 0.005 secunde | OK. | 4 | 4 | ||
| 4 | 0.008 secunde | OK. | 4 | 4 | ||
| 5 | 0.082 secunde | OK. | 5 | 5 | ||
| 6 | 0.124 secunde | OK. | 9 | 9 | ||
| 7 | 0.139 secunde | OK. | 8 | 8 | ||
| 8 | 0.081 secunde | OK. | 12 | 12 | ||
| 9 | 0.074 secunde | OK. | 10 | 10 | ||
| 10 | 0.121 secunde | OK. | 10 | 10 | ||
| 11 | Depășit | Limita de timp depășită | 4 | 0 | ||
| 12 | 0.275 secunde | OK. | 3 | 3 | ||
| 13 | Depășit | Limita de timp depășită | 3 | 0 | ||
| 14 | Depășit | Limita de timp depășită | 5 | 0 | ||
| 15 | 0.632 secunde | OK. | 4 | 4 | ||
| 16 | Depășit | Limita de timp depășită | 5 | 0 | ||
| 17 | Depășit | Limita de timp depășită | 6 | 0 | ||
| Punctaj total | 77 | |||||
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema bitmove 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ă.