#P14597. [COCI 2025/2026 #2] 递增 / Rastući

    ID: 16441 远端评测题 1000ms 512MiB 尝试: 0 已通过: 0 显示难度普及+/提高− 上传者: 标签>动态规划 DP贪心2025Special Judge动态规划优化前缀和COCI(克罗地亚)

[COCI 2025/2026 #2] 递增 / Rastući

背景

本题满分 110110。

题目描述

给定长度为 nn 的序列 a1,…,ana_1,\ldots,a_n。

你可以进行如下的操作:

操作

设当前序列为 [b1,b2,…,bm][b_1,b_2,\ldots,b_m]。

选择 1≤i<m1\le i\lt m,将序列变为 $[b_1,b_2,\ldots,b_{i-1},b_i+b_{i+1},b_{i+2},\ldots,b_m]$。

目标是让 aa 不降,即 ai≤ai+1a_{i}\le a_{i+1}。求出这样的 aa 的最大长度,并构造一个合法的 aa。

本题中你可以获得部分分,详见「计分方式」。

输入格式

第一行,一个正整数 nn(1≤n≤50001\le n\le 5000)。

第二行,nn 个正整数 aia_i(1≤ai≤1091\le a_i\le 10^9)。

输出格式

第一行,一个正整数 mm,表示最终序列的最长长度。

第二行,mm 个正整数,表示操作后得到的序列。

6
3 2 6 3 3 8
4
5 6 6 8
7
3 6 4 2 6 2 5
5
3 6 6 6 7

提示

样例解释

样例一解释:$[\textcolor{red}{3,2},6,3,3,8]\to [5,6,\textcolor{red}{3,3},8]\to [5,6,6,8]$。

子任务

  • Subtask 1 (10 pts)\text{Subtask 1 (10 pts)}:n≤20n\le 20。
  • Subtask 2 (15 pts)\text{Subtask 2 (15 pts)}:n≤100,ai≤100n\le 100,a_i\le 100。
  • Subtask 3 (20 pts)\text{Subtask 3 (20 pts)}:n≤500n\le 500。
  • Subtask 4 (25 pts)\text{Subtask 4 (25 pts)}:n≤1000n\le 1000。
  • Subtask 5 (40 pts)\text{Subtask 5 (40 pts)}:无额外限制。

计分方式

正确回答第一行可以获得 60%60\% 的分数。

在正确回答第一行的基础上正确回答第二行可以获得剩下 40%40\% 的分数。

如果只想要获得 60%60\% 的分数,也要在第二行输出 mm 个正整数,否则可能使得分出现偏差。