#1648
Diez
Negrimon a găsit într-o culegere această problemă #legendară: peste un şir de caractere de lungime N
, alcătuit din litere mici ale alfabetului englez, se efectuează M
operaţii de următoarele tipuri:
x
, pe poziţia p
, după deplasarea cu o poziţie la dreapta a caracterelor situate pe poziţiile mai mari sau egale cu p
. Dacă valoarea p
este egală cu lungimea şirului, x
este alipit la finalul şirului.1
dacă secvenţa de litere care începe la poziţia q1
şi are lungimea lg
coincide literă cu literă, cu secvenţa care începe la poziţia q2
şi are aceeaşi lungime lg
şi se răspunde cu 0
în caz contrar. Este posibil ca cele două secvenţe să se suprapună complet sau parţial în şirul din care ele fac parte.Fiind dat un şir de N
litere mici şi o listă de M
operaţii, să se afişeze răspunsurile la operaţiile de tip 2
, respectând ordinea din succesiunea de operaţii date.
Problema | Diez | Operații I/O |
diez.in /diez.out
|
---|---|---|---|
Limita timp | 2 secunde | Limita memorie |
Total: 128 MB
/
Stivă 8 MB
|
Id soluție | #38449376 | Utilizator | |
Fișier | diez.cpp | Dimensiune | 8.02 KB |
Data încărcării | 10 Octombrie 2022, 21:11 | Scor / rezultat | 100 puncte |
In file included from /usr/include/c++/4.8/cassert:43:0, from diez.cpp:6: diez.cpp: In function 'int main()': diez.cpp:124:37: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(i < power_base.size()); ^ diez.cpp:130:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(i < aib0.size()); ^ diez.cpp:138:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(pos < final_line.size()); ^ diez.cpp:145:41: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(j < final_line.size()); ^ diez.cpp:159:31: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(i < aib1.size()); ^ diez.cpp:176:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(st1 < final_line.size()); ^ diez.cpp:177:43: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(st2 < final_line.size()); ^ diez.cpp: In function 'void UpdateHashSegmentTree(int, int, int, int)': diez.cpp:228:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(0 < node && node < seg_tree.size()); ^ diez.cpp:229:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(0 < st && st < final_line.size()); ^ diez.cpp:230:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(0 < en && st < en && en < final_line.size()); ^ diez.cpp: In function 'void BuildSegmentTree(int, int, int)': diez.cpp:251:46: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(0 < node && node < seg_tree.size()); ^ diez.cpp:252:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(0 < st && st < final_line.size()); ^ diez.cpp:253:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(0 < en && en < final_line.size()); ^ diez.cpp:258:44: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(0 < st && st < final_line.size()); ^ diez.cpp:259:55: warning: comparison between signed and unsigned integer expressions [-Wsign-compare] assert(0 < en && st < en && en < final_line.size()); ^ diez.cpp: In function 'int main()': diez.cpp:85:36: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("diez.in", "r", stdin); ^ diez.cpp:86:38: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)', declared with attribute warn_unused_result [-Wunused-result] freopen("diez.out", "w", stdout); ^ diez.cpp:91:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d %d\n", &N, &M); ^ diez.cpp:94:37: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%s", (initial_line + 1)); ^ diez.cpp:97:28: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &type); ^ diez.cpp:100:32: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &pos1); ^ diez.cpp:106:32: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &pos1); ^ diez.cpp:108:32: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &pos2); ^ diez.cpp:110:30: warning: ignoring return value of 'int scanf(const char*, ...)', declared with attribute warn_unused_result [-Wunused-result] scanf("%d", &lg); ^
Test | Timp | Mesaj evaluare | Scor posibil | Scor obținut | ||
---|---|---|---|---|---|---|
1 | 0 secunde | OK. | 4 | 4 | ||
2 | 0 secunde | OK. | 4 | 4 | ||
3 | 0.012 secunde | OK. | 4 | 4 | ||
4 | 0.172 secunde | OK. | 4 | 4 | ||
5 | 0.508 secunde | OK. | 4 | 4 | ||
6 | 0.564 secunde | OK. | 4 | 4 | ||
7 | 0.304 secunde | OK. | 4 | 4 | ||
8 | 0.372 secunde | OK. | 4 | 4 | ||
9 | 0.572 secunde | OK. | 4 | 4 | ||
10 | 0.516 secunde | OK. | 4 | 4 | ||
11 | 0.572 secunde | OK. | 4 | 4 | ||
12 | 0.444 secunde | OK. | 4 | 4 | ||
13 | 0.58 secunde | OK. | 4 | 4 | ||
14 | 0.612 secunde | OK. | 4 | 4 | ||
15 | 0.42 secunde | OK. | 4 | 4 | ||
16 | 0.552 secunde | OK. | 4 | 4 | ||
17 | 0.624 secunde | OK. | 4 | 4 | ||
18 | 0.436 secunde | OK. | 4 | 4 | ||
19 | 0.424 secunde | OK. | 4 | 4 | ||
20 | 0.416 secunde | OK. | 4 | 4 | ||
21 | 0.568 secunde | OK. | 4 | 4 | ||
22 | 0.612 secunde | OK. | 4 | 4 | ||
23 | 0.504 secunde | OK. | 4 | 4 | ||
24 | 0.604 secunde | OK. | 4 | 4 | ||
25 | 0.536 secunde | OK. | 4 | 4 | ||
Punctaj total | 100 |
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Diez 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ă.