4237 - 最长子序列(subsequence)

题目描述

小 C 有一个长度为 n 的序列 A

小 C 认为一个子序列是好的当且仅当该子序列中的元素互不相同

小 C 想要知道序列 A 中最长的好的子序列的长度。

同时小 C 还想要找出序列 A 中最长的好的子序列中字典序最小的那一个,这里的字典序与经典的字典序定义不同,需要将下标位置为奇数的数字乘以 -1 后再进行比较。例如序列 [3,2,1] 的字典序在该定义下是小于 [2,2,1] 的。

输入

输入的第一行包含一个整数 n

接下来一行包含 n 个整数,第 i 个整数表示 A_i

输出

输出共两行。

第一行包含一个整数,表示序列 A 中最长的好的子序列的长度。

第二行包含若干个整数,表示字典序最小的最长的好的子序列。

样例

输入

4
3 2 1 3

输出

3
3 2 1

输入

10
5 2 1 7 9 7 2 5 5 2

输出

5
5 1 9 7 2
说明

数据规模与约定

  • 对于 20\% 的数据,保证 n \le 20
  • 对于 40\% 的数据,保证 n\le 500
  • 对于 80\% 的数据,保证 n\le 5000
  • 对于 100\% 的数据,保证 1\le n\le 3\times 10^51\le A_i\le n

样例 1 解释

最长的好的子序列共有 [3,2,1],[2,1,3] 两种,其中 [3,2,1] 字典序更小。

标签
题目参数
时间限制 1 秒
内存限制 512 MB
提交次数 0
通过人数 0
金币数量 3 枚
难度 基础


上一题 下一题