Detalii evaluare #50216063

Rezumat problemă

#4437 arcade1

Ernest a găsit în garajul familiei sale un joc Pacman. Labirintul din joc poate fi reprezentat ca o matrice cu N linii și N coloane. Pe fiecare linie și fiecare coloană există exact un obstacol. Vom nota cu (L, C) poziția de pe linia L și coloana C. Matricea este circulară: dacă Pacman se deplasează la dreapta din poziția (L, N), ajunge în (L, 1), iar dacă se deplasează la stanga din poziția (L, 1), ajunge în (L, N), pentru orice linie L din matrice. Similar, dacă se deplasează în sus din (1, C), ajunge în (N, C), respectiv dacă se deplasează în jos din (N, C), ajunge în (1, C), pentru orice coloană C. Inițial Pacman se află în (1, 1) și vrea sa ajungă în (N, N) unde se găsește un punct galben care îl va ajuta să învingă fantomele colorate. Problema este formată din doua cerințe:

  • Cerința 1. Se citește un șir de mișcări format din literele U, D, L, R, ce descriu în ordine mișcările lui Pacman. Deplasându-se conform acestui șir, va ajunge Pacman din (1, 1) la punctul galben de coordonate (N, N)?
  • Cerința 2. Care este numărul minim de mișcări U, D, L, R prin care Pacman poate ajunge din (1, 1) la punctul galben de coordonate (N, N)?

ONI 2023 clasa a X-a

Detalii

Problema arcade1 Operații I/O arcade.in/arcade.out
Limita timp 0.5 secunde Limita memorie Total: 128 MB / Stivă 64 MB
Id soluție #50216063 Utilizator Belu Ianis (sinai2008)
Fișier arcade1.cpp Dimensiune 2.30 KB
Data încărcării 01 Aprilie 2024, 09:42 Scor / rezultat Eroare de compilare

Evaluare


Mesaj compilare

arcade1.cpp: In function 'void solve2()':
arcade1.cpp:82:12: error: expected unqualified-id before '[' token
       auto [ x, y ] = qe.front();

            ^
arcade1.cpp:85:11: error: 'x' was not declared in this scope
       if (x == n && y == n) break;

           ^
arcade1.cpp:85:21: error: 'y' was not declared in this scope
       if (x == n && y == n) break;

                     ^
arcade1.cpp:88:29: error: 'x' was not declared in this scope
          pii pos = moves[k](x, y);

                             ^
arcade1.cpp:88:32: error: 'y' was not declared in this scope
          pii pos = moves[k](x, y);

                                ^
arcade1.cpp:90:29: error: no match for 'operator[]' (operand types are 'std::map<std::pair<int, int>, int>' and '<brace-enclosed initializer list>')
             dist[pos] = dist[{ x, y }] + 1;

                             ^
arcade1.cpp:90:29: note: candidates are:
In file included from /usr/include/c++/4.8/map:61:0,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:80,
                 from arcade1.cpp:1:
/usr/include/c++/4.8/bits/stl_map.h:456:7: note: std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](const key_type&) [with _Key = std::pair<int, int>; _Tp = int; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<const std::pair<int, int>, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::pair<int, int>]
       operator[](const key_type& __k)
       ^
/usr/include/c++/4.8/bits/stl_map.h:456:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'const key_type& {aka const std::pair<int, int>&}'
/usr/include/c++/4.8/bits/stl_map.h:476:7: note: std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type& std::map<_Key, _Tp, _Compare, _Alloc>::operator[](std::map<_Key, _Tp, _Compare, _Alloc>::key_type&&) [with _Key = std::pair<int, int>; _Tp = int; _Compare = std::less<std::pair<int, int> >; _Alloc = std::allocator<std::pair<const std::pair<int, int>, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = std::pair<int, int>]
       operator[](key_type&& __k)
       ^
/usr/include/c++/4.8/bits/stl_map.h:476:7: note:   no known conversion for argument 1 from '<brace-enclosed initializer list>' to 'std::map<std::pair<int, int>, int>::key_type&& {aka std::pair<int, int>&&}'

Cum funcționează evaluarea?

www.pbinfo.ro permite evaluarea a două tipuri de probleme:

  • probleme la care rezolvarea presupune scrierea unui program complet
  • probleme la care rezolvarea presupune scrierea unei secvențe de program - câteva instrucțiuni, o listă de declarații, una sau mai multe funcții, etc.

Problema arcade1 face parte din prima categorie. Soluția propusă de tine va fi evaluată astfel:

  • Programul sursă este compilat folosind compilatorul corespunzător. Dacă în urma compilării se obțin erori sau avertismente, acestea sunt afișate în această pagină.
  • Dacă programul a fost compilat, executabilul obținut va fi rulat, furnizându-i-se unul sau mai multe seturi de date de intrare, în concordanță cu restricțiile specifice problemei. Pentru fiecare set de date se obține un anumit punctaj, în raport cu corectitudinea soluției tale.

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ă.