QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 256 MB Total points: 100

#20997. 子序列反转

Statistics

Farmer John 将 $N$ 头牛排成一队拍照($1 \leq N \leq 50$)。第 $i$ 头牛的身高为 $a(i)$。他认为队列中按身高递增的子序列越长,照片越美观。

回顾定义:子序列由下标满足 $i_1 < i_2 < \ldots < i_k$ 的元素 $a(i_1), a(i_2), \ldots, a(i_k)$ 组成。若 $a(i_1) \leq a(i_2) \leq \ldots \leq a(i_k)$,就称其为递增子序列。

FJ 希望队列中有长递增子序列。为此,他允许自己先选择任意子序列,反转其中的元素。

例如,给定序列:

1 6 2 3 4 3 5 3 4

可以反转这些选中的元素:

1 6 2 3 4 3 5 3 4
  ^         ^ ^ ^

得到:

1 4 2 3 4 3 3 5 6
  ^         ^ ^ ^

注意,被反转的子序列仍占据原来的下标,其他元素保持不变。

允许选择任意子序列反转一次,请求出递增子序列的最大可能长度。

输入格式

从标准输入读取。

第一行包含 $N$。其余 $N$ 行包含 $a(1) \ldots a(N)$,每个是 $1 \ldots 50$ 范围内的整数。

输出格式

输出到标准输出。

输出至多反转一个子序列后,最长递增子序列可能包含的元素数。

样例

输入格式 1

9
1
2
3
9
5
6
8
7
4

输出格式 1

9

题目作者:Lewin Gan

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.