CF1620F.Bipartite Array
省选/NOI-
通过率:0%
时间限制:2.00s
内存限制:256MB
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
You are given a permutation p consisting of n integers 1,2,…,n (a permutation is an array where each element from 1 to n occurs exactly once).
Let's call an array a bipartite if the following undirected graph is bipartite:
- the graph consists of n vertices;
- two vertices i and j are connected by an edge if i<j and ai>aj.
Your task is to find a bipartite array of integers a of size n, such that ai=pi or ai=−pi, or report that no such array exists. If there are multiple answers, print any of them.
给你一个由 n 个整数 1,2,…,n 构成的排列 p(排列是指每个从 1 到 n 的整数恰好出现一次的数组)。
我们称一个整数数组 a 是二分图的(bipartite),当且仅当如下无向图是二分图:
- 该图包含 n 个顶点;
- 当且仅当 i<j 且 ai>aj 时,顶点 i 与顶点 j 之间存在一条边。
你的任务是:构造一个长度为 n 的二分图数组 a,使得对每个 i,均有 ai=pi 或 ai=−pi;若不存在这样的数组,则报告无解。若存在多个解,输出任意一个即可。
输入格式
The first line contains a single integer t (1≤t≤2⋅105) — the number of test cases.
The first line of each test case contains a single integer n (1≤n≤106) — the size of the permutation.
The second line contains n integers p1,p2,…,pn.
The sum of n over all test cases doesn't exceed 106.
第一行包含一个整数 t(1≤t≤2⋅105)—— 测试用例的数量。
每个测试用例的第一行包含一个整数 n(1≤n≤106)—— 排列的长度。
第二行包含 n 个整数 p1,p2,…,pn。
所有测试用例的 n 之和不超过 106。
输出格式
For each test case, print the answer in the following format. If such an array a does not exist, print "NO" in a single line. Otherwise, print "YES" in the first line and n integers — array a in the second line.
对于每个测试用例,按以下格式输出答案:如果不存在满足条件的数组 a,则在单独一行中输出 "NO";否则,第一行输出 "YES",第二行输出 n 个整数 —— 即数组 a。
输入输出样例
输入#1
4 3 1 2 3 6 1 3 2 6 5 4 4 4 1 3 2 8 3 2 1 6 7 8 5 4
输出#1
YES 1 2 3 NO YES -4 -1 -3 -2 YES -3 -2 1 6 7 -8 -5 -4
输入解题思路,AI测评打分。不知道怎么写?