#2977
Sindbad a descoperit un recipient care conține o poțiune magică și o inscripție care descrie cum se poate deschide poarta unui templu. Urmând instrucțiunile din inscripție, Sindbad a ajuns la un tunel acoperit cu dale pătrate, aliniate astfel încât formează linii și coloane. Tunelul are mai multe linii, iar pe fiecare linie sunt câte N dale. Dalele din tunel sunt numerotate începând cu 1, astfel încât, parcurgându-le linie cu linie și fiecare linie de la stânga la dreapta, se obține un șir strict crescător de numere naturale consecutive.
Sindbad se află la intrare, înaintea primei linii. Pentru a deschide poarta templului, el trebuie să ajungă pe dala numerotată cu P, călcând pe un număr minim de dale. Dacă există mai multe astfel de soluții, o va alege pe cea pentru care consumul total de picături de poțiune magică este minim.
Scrieți un program care citește valorile N și P și rezolvă următoarele cerințe:
1. afișează numărul minim de dale pe care trebuie să calce pentru a deschide poarta;
2. afișează numărul natural T, reprezentând numărul minim de picături de poțiune magică necesare pentru deschiderea porții.
OJI 2019
| Problema | poarta1 | Operații I/O |
poarta.in/poarta.out
|
|---|---|---|---|
| Limita timp | 0.1 secunde | Limita memorie |
Total: 8 MB
/
Stivă 4 MB
|
| Id soluție | #63303240 | Utilizator | |
| Fișier | poarta1.cpp | Dimensiune | 1.90 KB |
| Data încărcării | 25 Februarie 2026, 14:34 | Scor/rezultat | Eroare de compilare |
poarta1.cpp: In function 'int main()': poarta1.cpp:41:19: error: expected unqualified-id before 'int' int C; int N, int cost; string P; ^ poarta1.cpp:54:14: error: expected unqualified-id before '[' token auto [x, cost] = q.front(); q.pop(); ^ poarta1.cpp:55:19: error: 'x' was not declared in this scope if (equal(x,P)) { ^ poarta1.cpp:56:33: error: 'cost' was not declared in this scope if (C == 1) fout << cost + 1 << "\n"; // primul pas ^ poarta1.cpp:57:26: error: 'cost' was not declared in this scope else fout << cost << "\n"; ^ poarta1.cpp:62:30: error: 'x' was not declared in this scope string nxt1 = addOne(x); ^ poarta1.cpp:63:48: error: 'cost' was not declared in this scope if (!visited.count(nxt1) || ((C==2) && cost+1 < visited[nxt1])) { ^ poarta1.cpp:70:48: error: 'cost' was not declared in this scope if (!visited.count(nxt2) || ((C==2) && cost+2 < visited[nxt2])) { ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema poarta1 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ă.