#4609
opsir
Se consideră o pereche de șiruri de caractere, 𝑆
și 𝑇
, de lungime 𝑛
, respectiv 𝑚
, formate exclusiv din litere mici ale alfabetului englez. Pozițiile literelor sunt numerotate în șir începând de la 1
.
Sunt două tipuri de operații ce se pot efectua asupra șirului 𝑇
:
1 𝑝
: se șterge litera de pe poziția 𝑝
;2 𝑠𝑡 𝑑𝑟
(cu 𝑠𝑡 ≤ 𝑑𝑟
): se sortează crescător (alfabetic) literele din subsecvența ce corespunde intervalului de poziții [𝑠𝑡, 𝑑𝑟]
;unde 𝑝
, 𝑠𝑡
și 𝑑𝑟
sunt poziții ale unor litere din șirul 𝑇
.
Inițial, toate literele șirului 𝑇
sunt necolorate. O operație de tip 2 poate fi realizată doar dacă toate literele din subsecvența corespunzătoare intervalului de poziții [𝑠𝑡,𝑑𝑟]
sunt necolorate. După efectuarea sortării, toate literele din această subsecvență devin colorate.
Pentru fiecare dintre perechile de șiruri de tipul 𝑆
și 𝑇
date:
𝑆
sau 𝑇
) în care apare de mai multe ori. În caz de egalitate, se alege șirul 𝑇
.𝑇
, care să îl transforme𝑆
. Să se afișeze DA
în cazul în care există o astfel de succesiune de operații, sau NU
înOJI 2024, clasa a 10-a
Problema | opsir | Operații I/O |
opsir.in /opsir.out
|
---|---|---|---|
Limita timp | 0.5 secunde | Limita memorie |
Total: 128 MB
/
Stivă 8 MB
|
Id soluție | #53333206 | Utilizator | |
Fișier | opsir.cpp | Dimensiune | 776 B |
Data încărcării | 24 Octombrie 2024, 18:55 | Scor / rezultat | Eroare de compilare |
opsir.cpp: In function 'int main()': opsir.cpp:31:15: error: increment of read-only member 'std::pair<const char, int>::first' mp[I.first++]; ^ opsir.cpp:33:15: error: increment of read-only member 'std::pair<const char, int>::first' mp[I.first++]; ^ opsir.cpp:40:15: error: no match for 'operator[]' (operand types are 'std::map<char, int>' and 'std::pair<const char, int>') if(mp1[I]) ^ opsir.cpp:40:15: note: candidates are: In file included from /usr/include/c++/4.8/map:61:0, from opsir.cpp:3: /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 = char; _Tp = int; _Compare = std::less<char>; _Alloc = std::allocator<std::pair<const char, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = char] operator[](const key_type& __k) ^ /usr/include/c++/4.8/bits/stl_map.h:456:7: note: no known conversion for argument 1 from 'std::pair<const char, int>' to 'const key_type& {aka const char&}' /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 = char; _Tp = int; _Compare = std::less<char>; _Alloc = std::allocator<std::pair<const char, int> >; std::map<_Key, _Tp, _Compare, _Alloc>::mapped_type = int; std::map<_Key, _Tp, _Compare, _Alloc>::key_type = char] operator[](key_type&& __k) ^ /usr/include/c++/4.8/bits/stl_map.h:476:7: note: no known conversion for argument 1 from 'std::pair<const char, int>' to 'std::map<char, int>::key_type&& {aka char&&}' opsir.cpp:41:5: error: expected primary-expression before '}' token } ^ opsir.cpp:41:5: error: expected ';' before '}' token
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema opsir 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ă.