CF546C Soldier and Cards

题目描述

两个感到无聊的士兵正在玩纸牌“战争”。他们的牌堆一共有 $n$ 张牌,编号从 $1$ 到 $n$,每张牌的数值都不同。他们以某种方式将这些牌分配给自己,每个人拥有的牌数可能不同。然后他们玩一种类似“战争”的纸牌游戏。 规则如下:每一轮都会进行一场对决。双方各自从自己牌堆的顶端取一张牌同时放到桌子上。牌面数值较大的一方赢得本轮对决,并将桌面上的两张牌都拿到自己牌堆的底部。具体地说,胜者先把对手的牌放到自己牌堆的底部,然后再把自己的牌放到牌堆底部。如果某一回合后,某位玩家的牌堆为空,则该玩家输掉游戏,另一位玩家获胜。 你需要计算共进行了多少次对决以及谁最终获胜,或者说明游戏永远不会结束。

输入格式

第一行包含一个整数 $n$($2 \leq n \leq 10$),表示牌的总数。 第二行包含一个整数 $k_{1}$($1 \leq k_{1} \leq n-1$),表示第一个士兵拥有的牌数。紧接着是 $k_{1}$ 个整数,表示第一个士兵的牌堆,从顶到底的顺序。 第三行包含一个整数 $k_{2}$($k_1 + k_2 = n$),表示第二个士兵拥有的牌数。紧接着是 $k_{2}$ 个整数,表示第二个士兵的牌堆,从顶到底的顺序。 所有的牌面数值互不相同。

输出格式

如果某人赢得了这场游戏,输出两个整数,第一个表示在游戏结束前进行了多少轮对决,第二个为 $1$ 或 $2$,表示获胜的是哪一位士兵。 如果游戏无法结束,将永远继续下去,则输出 $-1$。

说明/提示

第一个样例: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF546C/13fabc002be9b868c475a6223b80932fbf64aac8.png) 第二个样例: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF546C/baf8f9cbd8baa7b7a7d1f276ff7ae6d3445560b3.png) 由 ChatGPT 5 翻译