#5004
Fie o matrice de dimensiuni 𝑁 × 𝑀 care conține numai valorile 0 și 1. Căsuțele marcate cu 0 sunt inaccesibile, în timp ce căsuțele marcate cu 1 sunt accesibile.
Gimi se va afla inițial într-o căsuță marcată cu 1 din această matrice, poziția ei nefiind însă cunoscută nouă. Lui Gimi îi putem da instrucțiuni de tipul: deplasează-te în căsuța (𝑥𝑑 , 𝑦𝑑). Regulile sunt următoarele:
1.(𝑥, 𝑦) sunt (cât timp sunt în matrice): (𝑥 − 1, 𝑦), (𝑥, 𝑦 + 1), (𝑥 + 1, 𝑦) și (𝑥, 𝑦 − 1).Dacă Gimi poate respecta toate regulile, atunci acesta se va deplasa în căsuța (𝑥𝑑 , 𝑦𝑑). Altfel, va rămâne pe loc.
Scrieți un program care, cunoscând 𝑁 și 𝑀, respectiv matricea, determină:
Cerința 1. O serie de instrucțiuni pe care, dacă Gimi o urmărește, indiferent de poziția lui inițială, ne va garanta faptul că va trece prin căsuța (𝑥𝑡 , 𝑦𝑡) (marcată cu 1).
Cerința 2. O serie de instrucțiuni pe care, dacă Gimi o urmărește, indiferent de poziția lui inițială, ne va garanta faptul că va trece prin toate celelalte căsuțe marcate cu 1.
Cerința 3. Cel mai mic număr 𝑃 astfel încât, primind o serie de 𝑄 instrucțiuni pe care, dacă Gimi o urmărește, indiferent de poziția lui de start, ne va garanta faptul că va trece prin toate celelalte căsuțe marcate cu 1, fără să fie necesară executarea instrucțiunilor de la 𝑃 + 1 la 𝑄.
| Problema | Blind | Operații I/O |
blind.in/blind.out
|
|---|---|---|---|
| Limita timp | 1 secunde | Limita memorie |
Total: 128 MB
/
Stivă 8 MB
|
| Id soluție | #64216614 | Utilizator | |
| Fișier | blind.cpp | Dimensiune | 3.66 KB |
| Data încărcării | 23 Aprilie 2026, 12:21 | Scor/rezultat | Eroare de compilare |
blind.cpp: In function ‘void solve_C1_C2()’: blind.cpp:39:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<Point>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare] 39 | for(int i = 0; i < cells.size(); ++i) { | ~~^~~~~~~~~~~~~~ blind.cpp:51:20: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’ 51 | auto dfs = [&](auto self, int u) -> void { | ^~~~ blind.cpp: In lambda function: blind.cpp:56:21: error: ‘self’ cannot be used as a function 56 | self(self, v); | ~~~~^~~~~~~~~ blind.cpp: In function ‘void solve_C1_C2()’: blind.cpp:65:35: error: no match for call to ‘(solve_C1_C2()::<lambda(int, int)>) (solve_C1_C2()::<lambda(int, int)>&, int&)’ 65 | for(int i = 0; i < 2; ++i) dfs(dfs, start_node); | ~~~^~~~~~~~~~~~~~~~~ blind.cpp:51:16: note: candidate: ‘solve_C1_C2()::<lambda(int, int)>’ 51 | auto dfs = [&](auto self, int u) -> void { | ^ blind.cpp:51:16: note: no known conversion for argument 1 from ‘solve_C1_C2()::<lambda(int, int)>’ to ‘int’
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Blind 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ă.