欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1547C.Pair Programming
Pair Programming
题目描述
Monocarp 和 Polycarp 正在学习新的编程技巧。现在他们决定尝试“结对编程”。
已知他们在同一个文件上共同工作了 分钟。每分钟恰好有一个人对文件进行了修改。在他们开始之前,文件中已经写好了 行。
每分钟恰好有一个人执行以下两种操作之一:在文件末尾添加一行新内容,或者修改文件中的某一行。
Monocarp 总共工作了 分钟,执行的操作序列为 。如果 ,他就在文件末尾添加一行新内容。如果 ,他就修改第 行。Monocarp 必须严格按照 的顺序执行操作。
Polycarp 总共工作了 分钟,执行的操作序列为 。如果 ,他就在文件末尾添加一行新内容。如果 ,他就修改第 行。Polycarp 必须严格按照 的顺序执行操作。
请还原他们共同的操作序列,长度为 ,使得所有操作都是合法的——即不能修改尚未存在的行。注意,在最终的操作序列中,Monocarp 的操作应当形成子序列 ,Polycarp 的操作应当形成子序列 。他们可以任意多次轮流操作。
举个例子,假设 。Monocarp 首先修改了第 行,然后添加了一行新内容(因此 )。Polycarp 首先添加了一行新内容,然后修改了第 行(因此 )。
由于文件初始有 行,为了让 Polycarp 能够修改第 行,必须先添加两行新内容。在这种情况下,合法的操作序列可以是 或 。而 (操作顺序错误)和 (第 行尚不存在)都是不合法的。
输入格式
第一行包含一个整数 ()。接下来是 组测试数据。每组测试数据前有一个空行。
每组测试数据包含三行。第一行包含三个整数 、、(,),分别表示文件初始的行数、Monocarp 操作序列的长度和 Polycarp 操作序列的长度。
第二行包含 个整数 ()。
第三行包含 个整数 ()。
输出格式
对于每组测试数据,输出任意一个合法的 Monocarp 和 Polycarp 的共同操作序列,长度为 。如果不存在这样的序列,输出 。
说明/提示
由 ChatGPT 4.1 翻译
样例
5
3 2 2
2 0
0 5
4 3 2
2 0 5
0 6
0 2 2
1 0
2 3
5 4 4
6 0 8 0
0 7 0 9
5 4 1
8 7 8 0
0
2 0 0 5
0 2 0 6 5
-1
0 6 0 7 0 8 0 9
-1
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |