#P2120. ACSL 2023-2024 Intermediate Division Contest #3 Rack-O

ACSL 2023-2024 Intermediate Division Contest #3 Rack-O

Description

问题:Rack-O 游戏中,每位玩家都会收到 1010 张卡牌,每张卡牌上印有一个位于 116060 之间的数字。每位玩家按照发牌顺序,将这 1010 张卡牌从前至后摆放在一个带卡槽的架子上。每位玩家从抽牌堆中抽牌,在一系列抽取的过程中,玩家可以用抽到的卡牌替换在牌架上的一张卡牌。游戏目标是使得牌架上所有卡牌按升序排列。第一位达成游戏目标的玩家获胜。

在ACSL版的Rack-O游戏中,玩家会被告知卡槽数量 ss,以及卡牌数量 nn。每张卡牌上都有一个在 11nn 之间(包括 11nn)的专属数字。玩家将会收到 ss 张卡牌,然后将这些卡牌从前至后摆放在牌架上。除此之外,玩家还会收到一叠卡牌,形成一个抽牌堆,按照卡牌叠放顺序依次抽牌。如果牌架上的卡牌未按升序排列,那么对于每一张抽到的卡牌都要按以下顺序遵循下列规则:

  1. 除牌架上第一张卡牌之外,如果抽到的卡牌的数字比在牌架上某一张卡牌上的数字小 11 则用这张抽到的卡牌替换牌架上这张牌前面的卡牌。
  2. 除牌架上最后一张卡牌之外,如果抽到的卡牌的数字比牌架上某一张卡牌上的数字大 11,则用这张抽到的牌替换牌架上这张牌后面的卡牌。
  3. 对于牌架上任意三张在相邻卡槽中的卡牌,如果在中间位置的卡牌上的数字并不介于这三张中第一张牌和最后一张牌的数字之间,但抽到的卡牌上的数字介于其间,则用抽到的牌的牌来替换在中间位置的卡牌。
  4. 如果抽到的卡牌比牌架上第二张卡牌小且牌架上第一张卡牌比第二张卡牌大,则用抽到的卡牌替换牌架上第一张卡牌。
  5. 如果抽到的卡牌比牌架上倒数第二张卡牌大且牌架上最后一张卡牌比倒数第二张卡牌小,则用抽到的卡牌替换最后一张卡牌。
  6. 否则,放弃使用抽到的卡牌,抽取下一张。

一旦牌架上的牌按升序排列,游戏结束,不再抽牌。牌架值等于牌架上所有卡牌之和再加上奖励分。如果牌架上出现 33 张或更多张数字连续的卡牌,那么这些数字连续的卡牌每张都可以再加上 55 分的奖励分。例如,如果牌架上出现数字 454546464747,就可以额外加上 1515 分的奖励分;如果牌架上出现数字 33445566,就可以额外加上 2020 分的奖励分。但是,如果抽牌堆中的卡牌全部抽取完毕,但牌架上的所有卡牌未按升序排列,那么牌架值将会等于牌架上卡牌数字递减次数的相反数。举例来说,如果牌架上的卡牌数字序列为 4040474720205656151516161717,那么数字 4747 之后紧接着是较小的数字 2020,数字 5656 之后紧接着是较小的数字 1515,这两次递减都会计入次数。并且,由于牌架上所有卡牌未按升序排列,因此 151516161717 不计奖励分。所以最后牌架值等于 2-2

Input

输入三个字符串:卡槽数量及卡牌数量;牌架上的卡牌;抽牌堆中的卡牌。各个数字之间用一个空格隔开。

Output

如上所述,输出玩家的牌架值。

Samples

10 60
40 35 20 56 32 58 42 17 45 34
31 44 10 28 19 46 7 37 16 2
341

样例解释