#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 | #53922952 | Utilizator | |
Fișier | opsir.cpp | Dimensiune | 2.45 KB |
Data încărcării | 14 Noiembrie 2024, 20:04 | Scor / rezultat | 30 puncte |
opsir.cpp: In function 'int main()': opsir.cpp:26:31: warning: array subscript has type 'char' [-Wchar-subscripts] if (Scount[tmp] == 0){ ^ opsir.cpp:29:27: warning: array subscript has type 'char' [-Wchar-subscripts] Scount[tmp]++; ^ opsir.cpp:33:31: warning: array subscript has type 'char' [-Wchar-subscripts] if (Scount[tmp] + Tcount[tmp] == 0){ ^ opsir.cpp:33:45: warning: array subscript has type 'char' [-Wchar-subscripts] if (Scount[tmp] + Tcount[tmp] == 0){ ^ opsir.cpp:36:27: warning: array subscript has type 'char' [-Wchar-subscripts] Tcount[tmp]++; ^ opsir.cpp:68:32: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while (p1 < S.size() && p2 < T.size()){ ^ opsir.cpp:68:49: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while (p1 < S.size() && p2 < T.size()){ ^ opsir.cpp:70:53: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while (S[p1] >= prev && p1 < S.size()){ ^ opsir.cpp:72:33: warning: array subscript has type 'char' [-Wchar-subscripts] counter[prev]++; ^ opsir.cpp:76:47: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] while (cnt > 0 && p2 < T.size()){ ^ opsir.cpp:77:38: warning: array subscript has type 'char' [-Wchar-subscripts] if (counter[T[p2]] > 0){ ^ opsir.cpp:78:38: warning: array subscript has type 'char' [-Wchar-subscripts] counter[T[p2]]--; ^ opsir.cpp:85:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] if (p1 == S.size() && cnt == 0){ ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | OK. | 5 | 5 | ||
2 | 0 secunde | OK. | 5 | 5 | ||
3 | 0 secunde | OK. | 5 | 5 | ||
4 | 0.004 secunde | OK. | 5 | 5 | ||
5 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
6 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
7 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
8 | 0 secunde | OK. | 5 | 5 | ||
9 | 0.004 secunde | Raspuns gresit. | 5 | 0 | ||
10 | 0.004 secunde | Raspuns gresit. | 5 | 0 | ||
11 | 0.084 secunde | Raspuns gresit. | 5 | 0 | ||
12 | 0.08 secunde | Raspuns gresit. | 5 | 0 | ||
13 | 0.084 secunde | Raspuns gresit. | 5 | 0 | ||
14 | 0.072 secunde | Raspuns gresit. | 5 | 0 | ||
15 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
16 | 0 secunde | OK. | 5 | 5 | ||
17 | 0.004 secunde | Raspuns gresit. | 5 | 0 | ||
18 | 0 secunde | Raspuns gresit. | 5 | 0 | ||
19 | 0.04 secunde | Raspuns gresit. | 5 | 0 | ||
20 | 0.036 secunde | Raspuns gresit. | 5 | 0 | ||
Punctaj total | 30 |
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ă.