交易所 Exchange
题意翻译
你的任务是为交易所设计一个订单处理系统。要求支持如下三种指令。
- BUY p q:有人想买,数量为p,价格为q。
- SELL p q:有人想卖,数量为p,价格为q。
- CANCEL i:取消第i条指令对应的订单(输入保证这里有一个)
交易规则如下:
对于当前买订单,若当前最低卖价低于当前出价,则发生交易;对于当前卖订单,若当前最高买价高于当前价格,则发生交易。
发生交易时,按供需物品个数的最小值交易。交易后,需修改订单的供需物品个数。
当前出价或价格相同时,按订单产生的先后顺序发生交易。
感谢来自@孙博彦的翻译。
题目描述
[problemUrl]: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=448&page=show_problem&problem=4473
[PDF](https://uva.onlinejudge.org/external/15/p1598.pdf)
输入输出格式
输入格式
输出格式
输入输出样例
输入样例 #1
11
BUY 100 35
CANCEL 1
BUY 100 34
SELL 150 36
SELL 300 37
SELL 100 36
BUY 100 38
CANCEL 4
CANCEL 7
BUY 200 32
SELL 500 30
输出样例 #1
QUOTE 100 35 - 0 99999
QUOTE 0 0 - 0 99999
QUOTE 100 34 - 0 99999
QUOTE 100 34 - 150 36
QUOTE 100 34 - 150 36
QUOTE 100 34 - 250 36
TRADE 100 36
QUOTE 100 34 - 150 36
QUOTE 100 34 - 100 36
QUOTE 100 34 - 100 36
QUOTE 100 34 - 100 36
TRADE 100 34
TRADE 200 32
QUOTE 0 0 - 200 30