CF1364B.Most socially-distanced subsequence

普及/提高-

通过率:0%

AC君温馨提醒

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

题目描述

Given a permutation pp of length nn , find its subsequence s1s_1 , s2s_2 , \ldots , sks_k of length at least 22 such that:

  • s1s2+s2s3++sk1sk|s_1-s_2|+|s_2-s_3|+\ldots+|s_{k-1}-s_k| is as big as possible over all subsequences of pp with length at least 22 .
  • Among all such subsequences, choose the one whose length, kk , is as small as possible.

If multiple subsequences satisfy these conditions, you are allowed to find any of them.

A sequence aa is a subsequence of an array bb if aa can be obtained from bb by deleting some (possibly, zero or all) elements.

A permutation of length nn is an array of length nn in which every element from 11 to nn occurs exactly once.

输入格式

The first line contains an integer tt ( 1t21041 \le t \le 2 \cdot 10^4 ) — the number of test cases. The description of the test cases follows.

The first line of each test case contains an integer nn ( 2n1052 \le n \le 10^5 ) — the length of the permutation pp .

The second line of each test case contains nn integers p1p_1 , p2p_2 , \ldots , pnp_{n} ( 1pin1 \le p_i \le n , pip_i are distinct) — the elements of the permutation pp .

The sum of nn across the test cases doesn't exceed 10510^5 .

输出格式

For each test case, the first line should contain the length of the found subsequence, kk . The second line should contain s1s_1 , s2s_2 , \ldots , sks_k — its elements.

If multiple subsequences satisfy these conditions, you are allowed to find any of them.

输入输出样例

  • 输入#1

    2
    3
    3 2 1
    4
    1 3 4 2

    输出#1

    2
    3 1 
    3
    1 4 2

说明/提示

In the first test case, there are 44 subsequences of length at least 22 :

  • [3,2][3,2] which gives us 32=1|3-2|=1 .
  • [3,1][3,1] which gives us 31=2|3-1|=2 .
  • [2,1][2,1] which gives us 21=1|2-1|=1 .
  • [3,2,1][3,2,1] which gives us 32+21=2|3-2|+|2-1|=2 .

So the answer is either [3,1][3,1] or [3,2,1][3,2,1] . Since we want the subsequence to be as short as possible, the answer is [3,1][3,1] .

首页