Detalii evaluare #63163054

Rezumat problemă

#4242

Graniţa nu se trece uşor. Asta pentru că Balaurul Arhirel (mare pasionat de informatică) nu lasă pe nimeni să treacă decât după ce răspunde la nişte întrebări. În acea ţară există trei tipuri de perle normale (le vom nota cu 1, 2 şi 3) şi trei tipuri de perle magice (le vom nota cu A, B şi C). Perlele magice sunt deosebite prin faptul că se pot transforma în alte perle (una sau mai multe, normale sau magice). Să se determine pentru fiecare şir de intrare dacă se poate obţine prin transformările de mai sus sau nu (alegând orice primă perlă magică, la fiecare şir).

OJI 2004, Clasa a X-a
Fișiere Pracsiu Dan (dnprx) Marius Andrei concurs

Detalii

Problema perle Operații I/O perle.in/perle.out
Limita timp 0.1 secunde Limita memorie Total: 64 MB / Stivă 8 MB
Id soluție #63163054 Utilizator Dinca Matei (rhyhrrhy)
Fișier perle.cpp Dimensiune 2.27 KB
Data încărcării 18 Februarie 2026, 11:43 Scor/rezultat Eroare de compilare

Evaluare

Mesaj compilare

perle.cpp: In function 'bool dfs(const std::vector<int>&, int, const string&, std::map<std::pair<int, std::basic_string<char> >, bool>&)':
perle.cpp:15:24: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (pos > seq.size()) return false; // depășim lungimea

                        ^
perle.cpp:16:25: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (pos == seq.size()) return pearl == ""; // am terminat exact șirul

                         ^
perle.cpp:23:29: error: no match for 'operator[]' (operand types are 'std::unordered_map<char, std::vector<std::vector<std::basic_string<char> > > >' and 'const string {aka const std::basic_string<char>}')
     for (auto &trans : magic[pearl]) {

                             ^
perle.cpp:23:29: note: candidates are:
In file included from /usr/include/c++/4.8/unordered_map:48:0,
                 from /usr/include/i386-linux-gnu/c++/4.8/bits/stdc++.h:115,
                 from perle.cpp:1:
/usr/include/c++/4.8/bits/unordered_map.h:595:7: note: std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::mapped_type& std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](const key_type&) [with _Key = char; _Tp = std::vector<std::vector<std::basic_string<char> > >; _Hash = std::hash<char>; _Pred = std::equal_to<char>; _Alloc = std::allocator<std::pair<const char, std::vector<std::vector<std::basic_string<char> > > > >; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::mapped_type = std::vector<std::vector<std::basic_string<char> > >; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::key_type = char]
       operator[](const key_type& __k)
       ^
/usr/include/c++/4.8/bits/unordered_map.h:595:7: note:   no known conversion for argument 1 from 'const string {aka const std::basic_string<char>}' to 'const key_type& {aka const char&}'
/usr/include/c++/4.8/bits/unordered_map.h:599:7: note: std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::mapped_type& std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::operator[](std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::key_type&&) [with _Key = char; _Tp = std::vector<std::vector<std::basic_string<char> > >; _Hash = std::hash<char>; _Pred = std::equal_to<char>; _Alloc = std::allocator<std::pair<const char, std::vector<std::vector<std::basic_string<char> > > > >; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::mapped_type = std::vector<std::vector<std::basic_string<char> > >; std::unordered_map<_Key, _Tp, _Hash, _Pred, _Alloc>::key_type = char]
       operator[](key_type&& __k)
       ^
/usr/include/c++/4.8/bits/unordered_map.h:599:7: note:   no known conversion for argument 1 from 'const string {aka const std::basic_string<char>}' to 'std::unordered_map<char, std::vector<std::vector<std::basic_string<char> > > >::key_type&& {aka char&&}'
perle.cpp:28:24: error: unable to deduce 'auto&&' from 'trans'
         for (auto &x : trans) {

                        ^
perle.cpp:33:35: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
                 if (i >= seq.size() || seq[i] != val) {

                                   ^

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

Du-te sus!