#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 | #64669904 | Utilizator | |
| Fișier | blind.cpp | Dimensiune | 8.12 KB |
| Data încărcării | 21 Mai 2026, 15:02 | Scor/rezultat | Eroare de compilare |
blind.cpp:20:19: warning: multi-character character constant [-Wmultichar] 20 | const int MAXQ = 2'500'000; | ^~~~~ blind.cpp:20:19: error: expected ‘,’ or ‘;’ before '\x353030' blind.cpp: In function ‘void Timeline::undo()’: blind.cpp:65:10: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions] 65 | auto [p, v] = st[--sz]; | ^ blind.cpp: In function ‘int main()’: blind.cpp:250:12: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions] 250 | auto [x, y] = q.front(); | ^ blind.cpp:276:22: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions] 276 | for (const auto &[x, y] : ord) { | ^ blind.cpp:287:20: error: use of ‘auto’ in lambda parameter declaration only available with ‘-std=c++14’ or ‘-std=gnu++14’ 287 | auto dfs = [&](auto &&self, int x, int y) -> void { | ^~~~ blind.cpp: In lambda function: blind.cpp:293:15: error: expression cannot be used as a function 293 | self(self, xx, yy); | ~~~~^~~~~~~~~~~~~~ blind.cpp: In function ‘int main()’: blind.cpp:299:8: error: no match for call to ‘(main()::<lambda(int&&, int, int)>) (main()::<lambda(int&&, int, int)>&, int&, int&)’ 299 | dfs(dfs, xt, yt); | ~~~^~~~~~~~~~~~~ blind.cpp:287:16: note: candidate: ‘main()::<lambda(int&&, int, int)>’ 287 | auto dfs = [&](auto &&self, int x, int y) -> void { | ^ blind.cpp:287:16: note: no known conversion for argument 1 from ‘main()::<lambda(int&&, int, int)>’ to ‘int&&’ blind.cpp:301:22: warning: structured bindings only available with ‘-std=c++17’ or ‘-std=gnu++17’ [-Wc++17-extensions] 301 | for (const auto &[x, y] : ord) { | ^ blind.cpp: In member function ‘char InParser::read_ch()’: blind.cpp:106:30: warning: ignoring return value of ‘size_t fread(void*, size_t, size_t, FILE*)’ declared with attribute ‘warn_unused_result’ [-Wunused-result] 106 | fread(buff, 1, 4096, fin); | ~~~~~^~~~~~~~~~~~~~~~~~~~
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ă.