问题描述 |
---|
小卢在玩某款卡牌游戏,每个回合中,他可以执行以下三种操作任意次。 1:抽牌,将牌库顶端的那张牌置入自己手牌的最右端 2:探底,将牌库底端的那张牌置于牌库顶端 3:沉没,将手牌中最左端的牌置于牌库底端 抽牌异常:当小卢执行抽牌操作时,系统会依次进行以下判断并只执行最先符合的那条。 1、如果此时牌库为空,那么这次抽牌操作会使小卢受到一次疲劳伤害。 2、如果此时手牌已满,那么这次抽牌操作会摧毁牌库顶端的那张牌。 疲劳伤害:初始值为 1,从第二次开始,每次疲劳伤害都比上一次多 1。 |
输入描述 |
第一行是三个不超过 104 的正整数 n、m、k 分别表示初始时牌库的数量,小卢操作的次数,小卢的手牌上限。 接下来一行 n 个不超过 104 的正整数表示从牌顶到牌底,每张卡牌的编号(可能会重复)。 最后一行 m 个 1 ~ 3 之间的数字,依次表示小卢本回合的操作。 |
输出描述 |
输出三行,第一行是小卢受到的疲劳伤害总和,第二行是小卢手牌中从左到右卡牌的编号,第三行是牌库中从顶到底卡牌的编号。 输出编号时,每两个编号用空格隔开,最后一个编号后面没有空格。 特别地,如果手牌为空或牌库为空,对应行需要输出一个 |
样例输入复制样例 |
7 6 2 5 4 7 2 1 3 6 1 1 1 2 3 1
|
样例输出 |
0 4 6 2 1 3 5 |
提示说明 |
初始时手牌为空,抽第三张牌的时候,手牌已满,故编号为 7 的卡牌被摧毁。 |
相关 |