— 买头大象吧! — 我为什么要买大象? — 每个人都问“我买它干嘛”,别废话,来买头大象吧。 — 离我远点! — 行,但你得先买头大象!
这是一个交互式问题。
欢迎来到世界上最大的大象市场。作为市场的新手,你当前的目标是学会如何分析市场的当前状态。你需要能够回答在任何给定时刻你最多可以赚多少钱,假设你有足够的初始资金来完成你希望进行的所有交易。你不会进行任何实际的交易。
大象市场基于拍卖市场模型,买方对大象出价(买入价),卖方对大象要价(卖出价)。随着交易者改变主意,价格会不断更新。
我们假设,在当前的市场情况下,你可以买入一些大象,但必须立即将它们卖出。你只是在做现买现卖的倒手交易,因为你对保留大象哪怕一分钟都不感兴趣。因此,你买入和卖出的大象总数必须相同。
在大象市场开市时,没有人想买卖大象。大象的报价是依次提交或撤销的,列出了在指定价格下可以卖出的大象数量或可以买入的大象数量。为了简单起见,你只会看到在指定价格下买入或卖出的大象数量的变化。例如,“buy 10 100” 意味着你现在可以以每头 100 皮阿斯特(piastres)的价格多卖出 10 头大象;而 “sell -3 99” 意味着你现在以每头 99 皮阿斯特的价格可以买入的大象减少了 3 头。
编写一个程序,在每次提交买入或卖出大象的报价后,确定你在市场上可以获得的最大可能利润(金额)。请注意,由于你实际上并不进行任何真实的交易,因此你必须假设在每次提交新报价后,所有先前的报价仍然有效。
输入格式
你的程序将按以下格式依次接收市场报价。输入的每一行对应一个报价,并以报价类型(字符串 buy、sell 或 end 之一)开始,分别表示买入大象的报价、卖出大象的报价以及交易阶段的结束。
报价 end 不包含其他参数,你的程序必须在收到它后立即退出。
其他报价包含两个整数 $D$ 和 $P$,中间用单个空格分隔,作为附加参数,描述相应订单类型和价格 $P$ 下市场上大象数量的变化 $D$($-10^6 \le D \le 10^6$,$1 \le P \le 10^9$)。报价的总数永远不会超过 $10^5$。
保证当前市场上所有可用大象的总买入价格和总卖出价格均不会超过 $2^{62}$,且任何价格下用于买入或卖出的总大象数量永远不会变为负数。
输出格式
在每次 buy 或 sell 报价后,你必须在单独的一行中输出一个整数:在此报价提交到市场后,你最多可以赚取的利润(单位:皮阿斯特)。不要忘记在每次输出后打印换行符并刷新输出缓冲区。
样例
输入样例 1
buy 10 100 sell 4 98 buy -7 100 buy 2 99 sell 1 97 end
输出样例 1
0 8 6 7 9