CF1620F.Bipartite Array

省选/NOI-

通过率:0%

时间限制:2.00s

内存限制:256MB

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given a permutation pp consisting of nn integers 1,2,…,n1, 2, \dots, n (a permutation is an array where each element from 11 to nn occurs exactly once).

Let's call an array aa bipartite if the following undirected graph is bipartite:

  • the graph consists of nn vertices;
  • two vertices ii and jj are connected by an edge if i<ji \lt j and ai>aja_i \gt a_j.

Your task is to find a bipartite array of integers aa of size nn, such that ai=pia_i = p_i or ai=−pia_i = -p_i, or report that no such array exists. If there are multiple answers, print any of them.

给你一个由 nn 个整数 1,2,…,n1, 2, \dots, n 构成的排列 pp(排列是指每个从 11 到 nn 的整数恰好出现一次的数组)。

我们称一个整数数组 aa 是二分图的(bipartite),当且仅当如下无向图是二分图:

  • 该图包含 nn 个顶点;
  • 当且仅当 i<ji \lt j 且 ai>aja_i \gt a_j 时,顶点 ii 与顶点 jj 之间存在一条边。

你的任务是:构造一个长度为 nn 的二分图数组 aa,使得对每个 ii,均有 ai=pia_i = p_i 或 ai=−pia_i = -p_i;若不存在这样的数组,则报告无解。若存在多个解,输出任意一个即可。

输入格式

The first line contains a single integer tt (1≤t≤2⋅1051 \le t \le 2 \cdot 10^5) — the number of test cases.

The first line of each test case contains a single integer nn (1≤n≤1061 \le n \le 10^6) — the size of the permutation.

The second line contains nn integers p1,p2,…,pnp_1, p_2, \dots, p_n.

The sum of nn over all test cases doesn't exceed 10610^6.

第一行包含一个整数 tt(1≤t≤2⋅1051 \le t \le 2 \cdot 10^5)—— 测试用例的数量。

每个测试用例的第一行包含一个整数 nn(1≤n≤1061 \le n \le 10^6)—— 排列的长度。

第二行包含 nn 个整数 p1,p2,…,pnp_1, p_2, \dots, p_n。

所有测试用例的 nn 之和不超过 10610^6。

输出格式

For each test case, print the answer in the following format. If such an array aa does not exist, print "NO" in a single line. Otherwise, print "YES" in the first line and nn integers — array aa in the second line.

对于每个测试用例,按以下格式输出答案:如果不存在满足条件的数组 aa,则在单独一行中输出 "NO";否则,第一行输出 "YES",第二行输出 nn 个整数 —— 即数组 aa。

输入输出样例

  • 输入#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测评打分。不知道怎么写?

首页