#2134231341. [NOIP 2022] 喵了个喵

内存限制:512 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:Special Judge
上传者: j27eGU

题目描述

此题已有SPJ。望丰展,使WPXOJ

一.题目概况

中文题目名称 喵了个喵
英文题目与子目录名
可执行文件名
输入文件名
输出文件名
每个测试点时限  秒
测试点数目
每个测试点分值
附加样例文件
结果比较方式 全文比较(过滤行末空格及文末回车)
题目类型 spj
运行内存上限

二.提交源程序文件名

对于 C++ 语言
对于 C 语言
对于 pascal 语言

2. 喵了个喵

小 E 喜欢上了一款叫做《喵了个喵》的游戏。这个游戏有一个牌堆和 个可以从栈底删除元素的栈,任务是要通过游戏规则将所有的卡牌消去。开始时牌堆中有 张卡牌,从上到下的图案分别是 。所有的卡牌一共有 种图案,从 编号。牌堆中每一种图案的卡牌都有偶数张。开始时所有的栈都是空的。这个游戏有两种操作:

  • 选择一个栈,将牌堆顶上的卡牌放入栈的顶部。如果这么操作后,这个栈最上方的两张牌有相同的图案,则会自动将这两张牌消去。
  • 选择两个不同的栈,如果这两个栈栈的卡牌有相同的图案,则可以将这两张牌消去,原来在栈底上方的卡牌会成为新的栈底。如果不同,则什么也不会做。

这个游戏一共有 关,小 E 一直无法通关。请你帮小 E 设计一下游戏方案,即对于游戏的每一关,给出相应的操作序列使得小 E 可以把所有的卡牌消去。

输入格式

输入格式

第一行包含一个正整数 ,表示数据组数。

接下来一共 组数据,在每组数据中:

第一行包含三个正整数 ,分别表示栈的个数、卡牌的个数、卡牌上图案的种类。

第二行包含 个正整数,分别表示 ,分别从上到下表示牌堆中卡牌的图案。

输入数据保证有解。

输出格式

对于每一组数据,输出若干行。

其中第一行包含一个正整数 ,表示操作的次数。你需要保证

接下来 行,每行包含两个或三个正整数,整数之间用一个空格隔开。

若为两个整数 ,则进行一次第一个操作并选择栈

若为三个整数 ,则进行一次第二个操作并选择栈

你需要保证 ,且

样例

样例 #1

样例输入 #1

1
2 4 2
1 2 1 2

样例输出 #1

5
1 1
1 1
1 2
2 1 2
1 1

数据范围与提示

【样例 1 解释】

下图是初始状态。

下图是前两次操作之后的结果。

下图是第三次和第四次操作之后的结果。

下图是第五次操作之后的结果。

【样例 2】

见选手目录下的

【数据范围】

为所有 组数据中 的总和。

对于所有数据,保证

测试点
无限制
无限制

【评分方式】

对于每一组数据,若在按顺序进行所有操作后,牌堆为空且所有的栈均为空,则认为你的答案正确。

【提示】

你可以通过 的个位数来判断这个测试点是属于哪一类数据。

你的输出不需要与样例输出一致,输出任意一个合法解即可得分。