309986: CF1768C. Elemental Decompress

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Elemental Decompress

题意翻译

### 题目描述 给定整数 $n$ 和长度为 $n$ 的序列 $a$。 构造任意一组 $1\sim n$ 的排列 $p,q$,使得对于任意整数 $i(1\leq i\leq n)$ 都有 $\max(p_i,q_i)=a_i$。 有解输出 `YES` 然后输出任意一组满足要求的 $p,q$ 即可;无解输出 `NO`。 每个测试点包含 $t$ 组数据。 ### 输入格式 第一行输入一个整数 $t(1\leq t\leq10^4)$ 表示数据组数,接下来对于每组数据: 第一行输入一个整数 $n(1\leq n,\sum n\leq2\times10^5)$。 接下来输入一行 $n$ 个整数 $a_1,a_2,\cdots,a_n(1\leq a_i\leq n)$。 ### 输出格式 对于每组数据: 如果无解,输出一行 `NO`。 如果有解: - 首先输出一行 `YES`。 - 接下来输出一行 $n$ 个整数 $p_1,p_2,\cdots,p_n$ 表示你构造的排列 $p$。 - 接下来输出一行 $n$ 个整数 $q_1,q_2,\cdots,q_n$ 表示你构造的排列 $q$。 有多组解时你可以输出任意一组。 评测时 `YES` 和 `NO` 大小写不敏感。

题目描述

You are given an array $ a $ of $ n $ integers. Find two permutations $ ^\dagger $ $ p $ and $ q $ of length $ n $ such that $ \max(p_i,q_i)=a_i $ for all $ 1 \leq i \leq n $ or report that such $ p $ and $ q $ do not exist. $ ^\dagger $ A permutation of length $ n $ is an array consisting of $ n $ distinct integers from $ 1 $ to $ n $ in arbitrary order. For example, $ [2,3,1,5,4] $ is a permutation, but $ [1,2,2] $ is not a permutation ( $ 2 $ appears twice in the array), and $ [1,3,4] $ is also not a permutation ( $ n=3 $ but there is $ 4 $ in the array).

输入输出格式

输入格式


The first line contains a single integer $ t $ ( $ 1 \le t \le 10^4 $ ) — the number of test cases. The description of test cases follows. The first line of each test case contains a single integer $ n $ ( $ 1 \le n \le 2 \cdot 10^5 $ ). The second line of each test case contains $ n $ integers $ a_1,a_2,\ldots,a_n $ ( $ 1 \leq a_i \leq n $ ) — the array $ a $ . It is guaranteed that the total sum of $ n $ over all test cases does not exceed $ 2 \cdot 10^5 $ .

输出格式


For each test case, if there do not exist $ p $ and $ q $ that satisfy the conditions, output "NO" (without quotes). Otherwise, output "YES" (without quotes) and then output $ 2 $ lines. The first line should contain $ n $ integers $ p_1,p_2,\ldots,p_n $ and the second line should contain $ n $ integers $ q_1,q_2,\ldots,q_n $ . If there are multiple solutions, you may output any of them. You can output "YES" and "NO" in any case (for example, strings "yEs", "yes" and "Yes" will be recognized as a positive response).

输入输出样例

输入样例 #1

3
1
1
5
5 3 4 2 5
2
1 1

输出样例 #1

YES
1 
1 
YES
1 3 4 2 5 
5 2 3 1 4 
NO

说明

In the first test case, $ p=q=[1] $ . It is correct since $ a_1 = max(p_1,q_1) = 1 $ . In the second test case, $ p=[1,3,4,2,5] $ and $ q=[5,2,3,1,4] $ . It is correct since: - $ a_1 = \max(p_1, q_1) = \max(1, 5) = 5 $ , - $ a_2 = \max(p_2, q_2) = \max(3, 2) = 3 $ , - $ a_3 = \max(p_3, q_3) = \max(4, 3) = 4 $ , - $ a_4 = \max(p_4, q_4) = \max(2, 1) = 2 $ , - $ a_5 = \max(p_5, q_5) = \max(5, 4) = 5 $ . In the third test case, one can show that no such $ p $ and $ q $ exist.

Input

题意翻译

### 题目描述 给定整数 $n$ 和长度为 $n$ 的序列 $a$。 构造任意一组 $1\sim n$ 的排列 $p,q$,使得对于任意整数 $i(1\leq i\leq n)$ 都有 $\max(p_i,q_i)=a_i$。 有解输出 `YES` 然后输出任意一组满足要求的 $p,q$ 即可;无解输出 `NO`。 每个测试点包含 $t$ 组数据。 ### 输入格式 第一行输入一个整数 $t(1\leq t\leq10^4)$ 表示数据组数,接下来对于每组数据: 第一行输入一个整数 $n(1\leq n,\sum n\leq2\times10^5)$。 接下来输入一行 $n$ 个整数 $a_1,a_2,\cdots,a_n(1\leq a_i\leq n)$。 ### 输出格式 对于每组数据: 如果无解,输出一行 `NO`。 如果有解: - 首先输出一行 `YES`。 - 接下来输出一行 $n$ 个整数 $p_1,p_2,\cdots,p_n$ 表示你构造的排列 $p$。 - 接下来输出一行 $n$ 个整数 $q_1,q_2,\cdots,q_n$ 表示你构造的排列 $q$。 有多组解时你可以输出任意一组。 评测时 `YES` 和 `NO` 大小写不敏感。

Output

**题目大意**:

给定一个整数 \( n \) 和一个长度为 \( n \) 的序列 \( a \)。需要构造两个长度为 \( n \) 的排列 \( p \) 和 \( q \),使得对于任意整数 \( i \)(\( 1 \leq i \leq n \))都有 \( \max(p_i, q_i) = a_i \)。如果存在这样的排列,则输出 `YES` 以及 \( p \) 和 \( q \) 的任意一组解;如果不存在,则输出 `NO`。每个测试点包含 \( t \) 组数据。

**输入数据格式**:

- 第一行输入一个整数 \( t \)(\( 1 \leq t \leq 10^4 \))表示数据组数。
- 接下来对于每组数据:
- 第一行输入一个整数 \( n \)(\( 1 \leq n, \sum n \leq 2 \times 10^5 \))。
- 接下来输入一行 \( n \) 个整数 \( a_1, a_2, \cdots, a_n \)(\( 1 \leq a_i \leq n \))。

**输出数据格式**:

- 对于每组数据:
- 如果无解,输出一行 `NO`。
- 如果有解:
- 首先输出一行 `YES`。
- 接下来输出一行 \( n \) 个整数 \( p_1, p_2, \cdots, p_n \) 表示构造的排列 \( p \)。
- 接下来输出一行 \( n \) 个整数 \( q_1, q_2, \cdots, q_n \) 表示构造的排列 \( q \)。

有多组解时可以输出任意一组。评测时 `YES` 和 `NO` 大小写不敏感。**题目大意**: 给定一个整数 \( n \) 和一个长度为 \( n \) 的序列 \( a \)。需要构造两个长度为 \( n \) 的排列 \( p \) 和 \( q \),使得对于任意整数 \( i \)(\( 1 \leq i \leq n \))都有 \( \max(p_i, q_i) = a_i \)。如果存在这样的排列,则输出 `YES` 以及 \( p \) 和 \( q \) 的任意一组解;如果不存在,则输出 `NO`。每个测试点包含 \( t \) 组数据。 **输入数据格式**: - 第一行输入一个整数 \( t \)(\( 1 \leq t \leq 10^4 \))表示数据组数。 - 接下来对于每组数据: - 第一行输入一个整数 \( n \)(\( 1 \leq n, \sum n \leq 2 \times 10^5 \))。 - 接下来输入一行 \( n \) 个整数 \( a_1, a_2, \cdots, a_n \)(\( 1 \leq a_i \leq n \))。 **输出数据格式**: - 对于每组数据: - 如果无解,输出一行 `NO`。 - 如果有解: - 首先输出一行 `YES`。 - 接下来输出一行 \( n \) 个整数 \( p_1, p_2, \cdots, p_n \) 表示构造的排列 \( p \)。 - 接下来输出一行 \( n \) 个整数 \( q_1, q_2, \cdots, q_n \) 表示构造的排列 \( q \)。 有多组解时可以输出任意一组。评测时 `YES` 和 `NO` 大小写不敏感。

加入题单

上一题 下一题 算法标签: