CF1620F.Bipartite Array

普及/提高-

通过率:0%

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 < j and ai>aja_i > 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.

输入格式

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

The first line of each test case contains a single integer nn ( 1n1061 \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 .

输出格式

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.

输入输出样例

  • 输入#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
首页