P14597 [COCI 2025/2026 #2] 递增 / Rastući
题目背景
本题满分 $110$。
题目描述
给定长度为 $n$ 的序列 $a_1,\ldots,a_n$。
你可以进行如下的操作:
> **操作**
>
> 设当前序列为 $[b_1,b_2,\ldots,b_m]$。
>
> 选择 $1\le i\lt m$,将序列变为 $[b_1,b_2,\ldots,b_{i-1},b_i+b_{i+1},b_{i+2},\ldots,b_m]$。
>
目标是让 $a$ **不降**,即 $a_{i}\le a_{i+1}$。求出这样的 $a$ 的最大长度,并构造一个合法的 $a$。
本题中你可以获得部分分,详见「计分方式」。
输入格式
第一行,一个正整数 $n$($1\le n\le 5000$)。
第二行,$n$ 个正整数 $a_i$($1\le a_i\le 10^9$)。
输出格式
第一行,一个正整数 $m$,表示最终序列的最长长度。
第二行,$m$ 个正整数,表示操作后得到的序列。
说明/提示
### 样例解释
**样例一解释**:$[\textcolor{red}{3,2},6,3,3,8]\to [5,6,\textcolor{red}{3,3},8]\to [5,6,6,8]$。
### 子任务
- $\text{Subtask 1 (10 pts)}$:$n\le 20$。
- $\text{Subtask 2 (15 pts)}$:$n\le 100,a_i\le 100$。
- $\text{Subtask 3 (20 pts)}$:$n\le 500$。
- $\text{Subtask 4 (25 pts)}$:$n\le 1000$。
- $\text{Subtask 5 (40 pts)}$:无额外限制。
### 计分方式
正确回答第一行可以获得 $60\%$ 的分数。
在正确回答第一行的基础上正确回答第二行可以获得剩下 $40\%$ 的分数。
如果只想要获得 $60\%$ 的分数,也要在第二行输出 $m$ 个正整数,否则可能使得分出现偏差。