TopCoder

Thumb hsnu2016
Adrien Wu
$ \begin{align} AC \times 2^9 \\ \text{New TIOJ ?} \end{align} $

User's AC Ratio

54.4% (31/57)

Submission's AC Ratio

13.0% (75/576)

Description

之前之前,你已經成功地比較了兩個數字的大小。然而比較兩個數字的大小非常無聊,所以我們不妨把問題變難。接下來我們要同時考慮多個數字之間的大小關係,而我們在意的是這些數字中的最大和最小值。

具體而言,我們每次都可以做如下操作:
(1)將這些數字中的某個最大值移除
(2)將這些數字中的某個最小值移除
(3)加入一個數至這些數字
(4)詢問當前最大值
(5)詢問當前最小值

假設一開始沒有任何數字,請你實作這五個操作。

Input Format

本題沒有輸入。
#include "lib1168.h"
你需要實作五個函式:
void pop_big();
void pop_small();
void push(int s);
int big();
int small();
其中第一個函式需要將最大的數字移除,第二個函式需要將最小的數字移除,第三個函式需要將一個數加入目前的數字們,第四個函式需要回傳當前的最大值,第五個函式需要回傳當前的最小值。
在測試時保證當沒有數字的時候只會呼叫push,而且保證加入的數字$\leq 10 ^ 9$,五個函數的總呼叫次數$\leq 10 ^ 6$。評測時每筆測資只會有一組測試資料。

子任務(測資) 額外限制 分數
1 (0~4) 呼叫次數$\leq 1000$ 10
2 (5~9) 所有數字$\leq 1000$ 15
3 (10~14) 無限制 28
4 (15~19) 時限縮為300ms 47

Output Format

本題沒有輸出。

Sample Input

注意:本題沒有輸入,本輸入為提供測試標頭檔(參見Hints)使用。
7
3 10
3 100
3 1000
1
2
4
5

Sample Output

注意:本題沒有輸出,本輸出為提供測試標頭檔(參見Hints)使用。
100
100

Hints

這裡有一個測試用的標頭檔,可以用來測試。
該標頭檔接受以下輸入,數字間皆以空白分隔:
第一行有一個正整數$n$,代表函數總呼叫次數。
之後的$n$行,每行代表一次函數的呼叫。
如果是1,代表你要呼叫pop_big()
如果是2,代表你要呼叫pop_small()
如果是3 s,代表你要呼叫push(s)
如果是4,程式會輸出big()
如果是5,程式會輸出small()
如果不是上述情況,程式會輸出"Case number is out of range!!"。

Problem Source

Problem set / Description by Paupière
建國中學105學年度校內第一次模擬賽pA

Subtasks

For Testdata: 0 ~ 4, Score: 10
For Testdata: 5 ~ 9, Score: 15
For Testdata: 10 ~ 14, Score: 28
For Testdata: 15 ~ 19, Score: 47
No. Time Limit (ms) Memory Limit (KiB)
0 1000 65536
1 1000 65536
2 1000 65536
3 1000 65536
4 1000 65536
5 1000 65536
6 1000 65536
7 1000 65536
8 1000 65536
9 1000 65536
10 1000 65536
11 1100 65536
12 1000 65536
13 1000 65536
14 1000 65536
15 300 40960
16 300 40960
17 300 40960
18 300 40960
19 300 40960