#4806
EscapeLight
Andrei se află într-un labirint format dintr-o matrice de camere, fiecare având unul dintre următoarele tipuri: 0
: cameră cu bec stins, 1
: cameră cu bec aprins, 2
: cameră fără bec (inaccesibilă), 3
: cameră cu întrerupător.
Camerele de tip 3
pot aprinde/stinge becurile altor camere. Andrei poate alege să apese sau nu întrerupătoarele întâlnite. El pornește dintr-o cameră dată și trebuie să ajungă într-o cameră destinație, deplasându-se doar prin camere aprinse.
Se cere determinarea distanței minime pentru a ajunge la destinație.
Concursul Național de Matematică și Informatică Grigore Moisil
Problema | EscapeLight | Operații I/O |
![]() escapelight.in /escapelight.out
|
---|---|---|---|
Limita timp | 0.7 secunde | Limita memorie |
Total: 64 MB
/
Stivă 8 MB
|
Id soluție | #58556078 | Utilizator | |
Fișier | escapelight.cpp | Dimensiune | 3.63 KB |
Data încărcării | 17 Iunie 2025, 20:48 | Scor / rezultat | Eroare de compilare |
escapelight.cpp: In function 'int main()': escapelight.cpp:86:14: error: expected unqualified-id before '[' token auto [x,y,mask] = dq.front(); dq.pop_front(); ^ escapelight.cpp:87:22: error: 'x' was not declared in this scope int d = dist[x][y][mask]; ^ escapelight.cpp:87:25: error: 'y' was not declared in this scope int d = dist[x][y][mask]; ^ escapelight.cpp:87:28: error: 'mask' was not declared in this scope int d = dist[x][y][mask]; ^ escapelight.cpp:104:38: error: 'ny' was not declared in this scope if (nx < 0 || nx >= N || ny < 0 || ny >= M) continue; ^ escapelight.cpp:105:29: error: 'ny' was not declared in this scope if (!is_lit(nx, ny, mask)) continue; ^ escapelight.cpp:106:26: error: 'ny' was not declared in this scope if (dist[nx][ny][mask] > d + 1) { ^ escapelight.cpp:10:42: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("escapelight.in", "r", stdin); ^ escapelight.cpp:11:44: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("escapelight.out", "w", stdout); ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema EscapeLight 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ă.