#1215
În țara lui Piticot cuvintele au doar două litere, prima fiind o majusculă (literă mare) iar a doua o minusculă (literă mică). Piticii Mi și Gi se distrează și își trimit mesaje ascunzând cuvintele în cadrul unor secvențe transmise sub forma unor șiruri de litere. Piticul Mi scrie și trimite un mesaj piticului Gi respectând următoarele reguli:
De exemplu secvența s f u E e t R u E E ascunde un cuvânt deoarece conține și majuscule și minuscule, iar litera terminator de secvență, E, se repetă de exact două ori. Secvența ascunde cuvântul Eu, iar costul cuvântului este 5 (3 litere E + 2 două litere u).
La primirea mesajului, piticul Gi determină, pentru fiecare majusculă, costul maxim al cuvintelor care încep cu aceasta.
Scrieţi un program care determină:
1) numărul de secvențe trimise care nu ascund cuvinte;
2) cuvintele din mesaj, în ordinea în care au fost trimise de piticul Mi;
3) pentru fiecare majusculă, câte cuvinte care încep cu ea au costul maxim determinat de Gi.
ONI GIM 2015, Clasa a V-a
| Problema | Mesaj | Operații I/O |
mesaj.in/mesaj.out
|
|---|---|---|---|
| Limita timp | 0.5 secunde | Limita memorie |
Total: 1 MB
/
Stivă 1 MB
|
| Id soluție | #62022182 | Utilizator | |
| Fișier | mesaj.cpp | Dimensiune | 1.93 KB |
| Data încărcării | 30 Decembrie 2025, 20:03 | Scor/rezultat | Eroare de compilare |
mesaj.cpp: In function 'int main()': mesaj.cpp:18:8: error: no match for 'operator=' (operand types are 'std::string {aka std::basic_string<char>}' and 'void') mesaj=mesaj.push_back(caracter); ^ mesaj.cpp:18:8: note: candidates are: In file included from /usr/include/c++/4.8/string:52:0, from /usr/include/c++/4.8/bits/locale_classes.h:40, from /usr/include/c++/4.8/bits/ios_base.h:41, from /usr/include/c++/4.8/ios:42, from /usr/include/c++/4.8/istream:38, from /usr/include/c++/4.8/fstream:38, from mesaj.cpp:1: /usr/include/c++/4.8/bits/basic_string.h:546:7: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const std::basic_string<_CharT, _Traits, _Alloc>&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] operator=(const basic_string& __str) ^ /usr/include/c++/4.8/bits/basic_string.h:546:7: note: no known conversion for argument 1 from 'void' to 'const std::basic_string<char>&' /usr/include/c++/4.8/bits/basic_string.h:554:7: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(const _CharT*) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] operator=(const _CharT* __s) ^ /usr/include/c++/4.8/bits/basic_string.h:554:7: note: no known conversion for argument 1 from 'void' to 'const char*' /usr/include/c++/4.8/bits/basic_string.h:565:7: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(_CharT) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] operator=(_CharT __c) ^ /usr/include/c++/4.8/bits/basic_string.h:565:7: note: no known conversion for argument 1 from 'void' to 'char' /usr/include/c++/4.8/bits/basic_string.h:580:7: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(std::basic_string<_CharT, _Traits, _Alloc>&&) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] operator=(basic_string&& __str) ^ /usr/include/c++/4.8/bits/basic_string.h:580:7: note: no known conversion for argument 1 from 'void' to 'std::basic_string<char>&&' /usr/include/c++/4.8/bits/basic_string.h:592:7: note: std::basic_string<_CharT, _Traits, _Alloc>& std::basic_string<_CharT, _Traits, _Alloc>::operator=(std::initializer_list<_Tp>) [with _CharT = char; _Traits = std::char_traits<char>; _Alloc = std::allocator<char>] operator=(initializer_list<_CharT> __l) ^ /usr/include/c++/4.8/bits/basic_string.h:592:7: note: no known conversion for argument 1 from 'void' to 'std::initializer_list<char>' mesaj.cpp:23:28: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] for(int i=1; i<mesaj.size(); i++) { ^ mesaj.cpp:37:69: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if((mesaj[i]!=terminator && terminator!='\0') || i == v.size()-1) { ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Mesaj 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ă.