QBHEAP - Hàng đợi có độ ưu tiên

Tags: heap, implementation, data-structure

Problem

https://vn.spoj.com/problems/QBHEAP

https://oj.vnoi.info/problem/QBHEAP

Cho trước một danh sách rỗng. Người ta xét hai thao tác trên danh sách đó:

Thao tác +V (ở đây V là một số tự nhiên <= 1,000,000,000): Nếu danh sách đang có ít hơn 15,000 phần tử thì thao tác này bổ sung thêm phần tử V vào danh sách; Nếu không, thao tác này không có hiệu lực.

Thao tác -: Nếu danh sách đang không rỗng thì thao tác này loại bỏ tất cả các phần tử lớn nhất của danh sách; Nếu không, thao tác này không có hiệu lực

Input

Gồm nhiều dòng, mỗi dòng ghi một thao tác. Thứ tự các thao tác trên các dòng được liệt kê theo đúng thứ tự sẽ thực hiện

Output

Dòng 1: Ghi số lượng những giá trị còn lại trong danh sách.

Các dòng tiếp theo: Liệt kê những giá trị đó theo thứ tự giảm dần, mỗi dòng 1 số

Example

Input
+1
+3
+2
+3
-
+4
+4
-
+2
+9
+7
+8
-

Output
4
8 
7 
2 
1 

Tutorial

Một bài khởi động về heap. Dùng priority_queue trong C++ xử lí dễ dàng. Lưu ý rằng heap trong C++ mặc định là heap max.


Submission

QBHEAP.cpp