NC236249. 石子游戏2
描述
Alice和Bob又开始玩取石子游戏。游戏规则如下:有 堆石子,每堆石子有 颗石子。玩家轮流操作,每一次操作可以选择任意一堆非空的石子,从这堆石子中取走任意数量(非0)的石子,当一名玩家不能操作时则视为失败。
这次,他们准备连续玩 天,每天一局游戏。初始时,没有任何一堆石子。接下来每一天开始时,都会发生一件事,然后他们再开始玩游戏,每局游戏都是Alice先手。自从上次和Alice玩游戏后,Bob觉得自己被欺骗了,因此这次他想靠作弊获胜。在每次游戏之前,Bob都会从目前已有的石子堆中扔掉一些堆,然后保证自己必胜。游戏结束后,Bob又会把扔掉的那些石子堆放回原位。
在每一天开始时,会发生接下来两件事的其中一件:
" ",表示Alice把一堆包含 颗石子的石子堆放到最右边,这需要Bob花费 的代价来扔掉这堆石子。
" ",表示Alice自己扔掉了最右边的那堆石子,保证这堆石子一定存在。
你是Bob最好的朋友,Bob希望你帮他寻找一种最优方案,让Bob以最小的代价来保证自己每局游戏的胜利。因为Bob总是可以扔掉所有石子堆来保证自己胜利,所以一定有解。
输入描述
第一行输入一个整数 ,表示他们要玩游戏的天数。
接下来 行,每行代表每一天发生的事件,格式已由题目给出。
保证" "操作个数最多有 。
输出描述
输出行,每行一个整数,第个整数表示Bob至少需要花费多少代价来让自己在第天的游戏中获胜。
示例1
输入:
7 ADD 3 10 ADD 2 4 ADD 1 5 ADD 2 1 DEL DEL ADD 3 5
输出:
10 14 0 1 0 14 4