loj#P3888. 「eJOI2022」LCS of Permutations
「eJOI2022」LCS of Permutations
题目描述
本题译自 eJOI2022 Problem F. LCS of Permutations
对于两个序列 ,定义 为它们最长公共子序列的长度。
给定四个整数 。确定是否存在三个长度为 的从 到 的整数的排列 ,满足:
如果这样的排列存在,找出这样排列的三元组。
从 到 的整数排列 是一个长度为 的序列,序列中所有元素都在 中并且两两不同。例如, 是一个从 到 的整数排列,而 不是。
如果一个序列 可以通过删除一些(可能不删,也可能删除全部)元素得到序列 ,则称序列 是序列 的子序列。例如 是 的一个子序列,而 不是。
序列 和 的最长公共子序列是满足同时为 和 的子序列中最长的一个。例如, 和 的最长公共子序列是 ,因为它是两个序列的子序列,并且是最长的。 是最长公共子序列的长度,上述例子中这个值为 。
输入格式
第一行包含一个整数 ,表示测试点个数。每个测试点描述如下。
每组测试点只有一行,包含五个整数 $n,a,b,c,output\ (1\le a\le b\le c\le n\le 2\cdot 10^5,0\le output\le 1)$。
如果 ,只需要确定这样的排列是否存在。如果 ,如果这样的排列存在,你还要输出这样排列的三元组。
保证一组测试数据中所有测试点的 的总和不超过 。
输出格式
对于每个测试点,如果这样的排列 存在,输出 YES
,否则输出 NO
。如果 ,并且这样的排列存在,再输出三行:
第一行输出 个整数 ,表示排列 。
第二行输出 个整数 ,表示排列 。
第三行输出 个整数 ,表示排列 。
如果有多个这样的三元组,输出任意一个即可。
对于每个字母,你可以输出任何大小写情况。(例如,YES
,Yes
,yes
,yEs
都会被判定为正向答案。)
8
1 1 1 1 1
4 2 3 4 1
6 4 5 5 1
7 1 2 3 1
1 1 1 1 0
4 2 3 4 0
6 4 5 5 0
7 1 2 3 0
YES
1
1
1
NO
YES
1 3 5 2 6 4
3 1 5 2 4 6
1 3 5 2 4 6
NO
YES
NO
YES
NO
评分
详细子任务附加限制及分值如下表所示。
子任务编号 | 附加限制 | 分值 |
---|---|---|