#1690
Undo
XORin este nemulțumit de problemele primite în prima zi de concurs de la Olimpiada Națională de Informatică și decide astfel să se implice în comisie. În scurt timp devine specialistul comisiei în generarea de teste formate din șiruri de numere. Din când în când el trebuie să adauge sau să șteargă elemente din șir. Câteodată el decide să readauge dintre elemente șterse anterior. Fie șirul de numere a=(a[1], a[2], … ,a[N])
și N
numărul de elemente din șir după fiecare operație.
Astfel el are de realizat următoarele operații pornind de la un șir vid:
x
;x
elemente din șir;x
elemente șterse. Dacă, de exemplu, în operația anterioară de ștergere a unui număr y
de elemente, am șters elementele a[N-y+1]
, a[N-y+2]
,…, a[N]
, iar acum urmează o operație de readăugare a x
elemente, vor fi adăugate în ordine elementele a[N-y+1]
, a[N-y+2]
,…, a[N-y+x]
la sfârșitul șirului.Din când în când XORin își pune următoarea întrebare: de câte ori există valoarea x
în șir?
ONI 2016, clasa a X-a
Problema | Undo | Operații I/O |
undo.in /undo.out
|
---|---|---|---|
Limita timp | 0.3 secunde | Limita memorie |
Total: 16 MB
/
Stivă 8 MB
|
Id soluție | #49616798 | Utilizator | |
Fișier | undo.cpp | Dimensiune | 1.71 KB |
Data încărcării | 09 Martie 2024, 16:23 | Scor / rezultat | Eroare de compilare |
undo.cpp:11:1: error: 'vector' does not name a type vector<int> stk; ^ undo.cpp:13:1: error: 'vector' does not name a type vector<int> positionInList[VALMAX + 1]; ^ undo.cpp: In function 'void insert(int)': undo.cpp:16:27: error: 'stk' was not declared in this scope while (stackTop < stk.size()) { ^ undo.cpp:17:17: error: 'positionInList' was not declared in this scope positionInList[stk.back()].pop_back(); ^ undo.cpp:21:9: error: 'positionInList' was not declared in this scope positionInList[value].push_back(stackTop); ^ undo.cpp:22:9: error: 'stk' was not declared in this scope stk.push_back(value); ^ undo.cpp: At global scope: undo.cpp:33:18: error: 'vector' does not name a type int search(const vector<int>& list, int value) { ^ undo.cpp:33:18: error: ISO C++ forbids declaration of 'parameter' with no type [-fpermissive] undo.cpp:33:24: error: expected ',' or '...' before '<' token int search(const vector<int>& list, int value) { ^ undo.cpp: In function 'int search(int)': undo.cpp:35:31: error: 'list' was not declared in this scope int left = 0, right = list.size() - 1, mid; ^ undo.cpp:37:17: error: 'mid' was not declared in this scope mid = (left + right) / 2; ^ undo.cpp:38:34: error: 'value' was not declared in this scope if (list[mid] <= value) { ^ undo.cpp: In function 'int count(int)': undo.cpp:50:23: error: 'positionInList' was not declared in this scope return search(positionInList[value], stackTop); ^ undo.cpp:51:1: warning: control reaches end of non-void function [-Wreturn-type] } ^
www.pbinfo.ro permite evaluarea a două tipuri de probleme:
Problema Undo 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ă.