Problem

1 /10


Ditetapkan dalam C++

Theory Click to read/hide

Ditetapkan dalam C++

Tetapkan (tetapkan) — ia adalah bekas yang mengisih unsur-unsur tambahan secara automatik dalam tertib menaik. Tetapi apabila menambah nilai yang sama, set hanya akan menyimpan satu contoh daripadanya (multiset - multiset- mungkin mengandungi pendua). Apabila elemen baharu ditambahkan pada set, ia serta-merta jatuh ke tempatnya supaya tidak melanggar susunan isihan.  

Set dalam C++ ditakrifkan dalam pustaka templat standard STL melalui kelas set (multiset).

Set adalah pokok merah-hitam binari. Operasi carian, padam dan sisipan mempunyai kerumitan logaritma.
 
Untuk menggunakan set, anda perlu memasukkan pustaka “set #include <set>
Tetapkan pengisytiharan:
tetapkan<int> mySet; // Mengisytiharkan set kosong. multiset<int> mySet; // Mengisytiharkan multiset kosong.  
Fungsi untuk bekerja dengan set (set)
 
empty() - menyemak ketiadaan elemen dalam bekas
 
size() - Mengembalikan bilangan elemen dalam bekas
 
clear() - Kosongkan bekas
 
insert() - Memasukkan elemen
 
erase() - Mengalih keluar elemen
 
count() - Mengembalikan bilangan elemen yang sepadan dengan kunci yang diberikan
 
find() - Mencari elemen dengan kunci tertentu
 
lower_bound() - Mengembalikan iterator kepada elemen pertama tidak kurang daripada nilai yang diberikan
 
upper_bound() - Mengembalikan iterator kepada elemen pertama yang lebih besar daripada nilai yang ditentukan
 

 
Tetapkan dan contoh berbilang set
#include <iostream> #include <set> menggunakan ruang nama std; int utama() { tetapkan<int> mySet1; // mengisytiharkan set kosong multiset<int> mySet2; // mengisytiharkan multiset kosong // tambah elemen pada set mySet1.insert(1); mySet1.insert(2); mySet1.insert(3); mySet1.insert(1); // tambah elemen pada multiset mySet2.insert(1); mySet2.insert(2); mySet2.insert(3); mySet2.insert(1); set<int>::iterator it; //buat iterator for(it = mySet1.begin(); it != mySet1.end(); it++) { // Paparkan semua elemen cout << (*ia) << " "; // set } cout << endl; for(it = mySet2.begin(); it != mySet2.end(); it++) { // Output semua elemen cout << (*ia) << " "; // multiset } pulangan 0; }

Problem

Input
Diberi nombor N (1 <= N <= 100000) – bilangan permintaan. Baris N berikut mengandungi aksara ‘+’ atau ‘-’ dan nombor a (1 <= a <= 1000000000). Jika simbol – ‘+’, kemudian nombor a ditambahkan pada set, jika tidak – mengalih keluar semua nilai a yang telah ditambahkan sebelum ini.
Ia dijamin bahawa apabila nombor dialih keluar, ia terkandung dalam set.

Cetakan
Ia diperlukan untuk memaparkan dalam tertib menaik semua elemen unik dalam set selepas semua pertanyaan selesai, atau "-1" jika tiada unsur dalam set.

 
Contoh
# Input Output
1
3
+1
+2
-1
2
2
3
+1
+1
-1
-1
3
3
+1
+1
+1
1