CF2066F.Curse
NOI/NOI+/CTSC
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
给定两个整数数组 a1,a2,…,an 和 b1,b2,…,bm。
你需要判断是否可以通过若干次(可能为零)如下操作将数组 a 转换为数组 b。
- 在所有 a 的非空子数组∗中,选择一个具有最大和的子数组,并将该子数组替换为任意非空整数数组。
如果可能,你需要构造任意可行的操作序列。约束条件:你的答案中,所有操作使用的替换数组的长度之和不得超过 n+m。所有数字的绝对值不得超过 109。
∗ 如果数组 a 可以通过从数组 b 的开头和结尾删除若干(可能为零或全部)元素得到,则称 a 是 b 的子数组。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 t(1≤t≤200)。接下来是每个测试用例的描述。
每个测试用例的第一行包含两个整数 n,m(1≤n,m≤500)——数组 a 和 b 的长度。
每个测试用例的第二行包含 n 个整数 a1,a2,…,an(−106≤ai≤106)——数组 a 的元素。
每个测试用例的第三行包含 m 个整数 b1,b2,…,bm(−106≤bi≤106)——数组 b 的元素。
保证所有测试用例的 n 之和不超过 500。
保证所有测试用例的 m 之和不超过 500。
输出格式
对于每个测试用例,如果无法将数组 a 转换为数组 b,则输出 −1。
否则,在第一行输出操作次数 0≤q≤n+m。接下来按执行顺序输出操作,格式如下:
每个操作的第一行输出三个数字 l,r,k(1≤l≤r≤∣a∣)。第二行输出 k 个整数 c1…ck,表示将子数组 al,…,ar 替换为数组 c1,…,ck。
所有操作的 k 之和不得超过 n+m。此外,必须满足 −109≤ci≤109。
你不需要最小化操作次数。
输入输出样例
输入#1
3 4 3 2 -3 2 0 -3 -7 0 2 1 -2 -2 2 5 4 -5 9 -3 5 -9 -6 6 -1 -9
输出#1
4 3 4 1 -3 1 1 1 -3 2 2 1 -7 3 3 1 0 -1 3 2 4 1 -5 1 1 1 -6 2 2 2 6 -1
说明/提示
在第一个测试用例中,初始数组按以下方式修改:
[2,−3,2,0]→[2,−3,−3]→[−3,−3,−3]→[−3,−7,−3]→[−3,−7,0]
你可以选择输出空行或不输出。示例中的空行仅为方便阅读添加。
翻译由 DeepSeek R1 完成
输入解题思路,AI测评打分。不知道怎么写?