#jag2016secretspringd. [jag2016secretspring_d]インビジブル
[jag2016secretspring_d]インビジブル
问题描述
你和朋友想要玩一个名为"Invisible"的卡片游戏。这个游戏使用两种类型的卡片,分别是"得分卡"和"干扰卡"。每个得分卡上都写着一个正数值。这个卡片游戏的规则如下:
- 游戏由两名玩家,玩家1和玩家2进行。游戏从玩家1的回合开始。
- 场上有一个堆栈和两副牌组。堆栈由两名玩家放置的卡片组成。每个玩家持有的牌组由他们持有的得分卡和干扰卡组成。玩家可以随时查看自己或对手牌组中的卡片顺序。在游戏开始时,堆栈中没有任何卡片。
- 两名玩家轮流执行以下两个动作之一,但只能执行一次:
- 将自己牌组的顶部卡片放在堆栈的顶部。但是,当自己的牌组中没有卡片时,不能执行此操作。
- 跳过自己的回合。
- 当玩家跳过回合时,执行以下处理:
- 每位玩家获得满足以下两个条件的堆栈中所有得分卡:
- 它是玩家自己放置的得分卡。
- 它在所有对手干扰卡之上(如果堆栈中没有对手的干扰卡,玩家将获得他放置在堆栈上的所有卡片)。
- 删除堆栈中的所有卡片。
- 每位玩家获得满足以下两个条件的堆栈中所有得分卡:
如果两名玩家连续跳过回合并且没有卡片在堆栈中,游戏结束。每位玩家的最终分数是他们获得的得分卡上写的数值的总和。
每位玩家都会选择使得玩家1的分数减去玩家2的分数最大化的行动。你的任务是计算在给定每位玩家的牌组情况下,当两位玩家采取最优行动时,玩家1的分数与玩家2的分数之差。
输入
输入是一个单一测试用例,具有以下格式:
第一行包含一个正整数和,表示每个玩家的牌组中的卡片数量()。第二行包含个整数,表示玩家1牌组中第张卡片()。的取值范围是到,或者。第三行包含个整数,表示玩家2牌组中第张卡片()。的取值范围是到,或者。当和是正整数时,它们表示得分卡;当和为时,它们表示干扰卡。
输出
输出两位玩家采取最优行动时的。
样例输入1
2 2
100 -1
200 300```
### 样例输出1
```plain
-100```