#P15433. [蓝桥杯 2025 国 Python B] 灯塔

    ID: 15368 远端评测题 2000ms 512MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>动态规划 DP贪心2025排序蓝桥杯国赛

[蓝桥杯 2025 国 Python B] 灯塔

说明

在一片海岸线上,有 nn 个灯塔排成一排,从左到右编号为 11nn。你需要点亮其中的一些灯塔以指引船只航行。给定一个长度为 mm 的点亮序列 a1,a2,,ama_1, a_2, \dots, a_m,其中第 ii 个操作表示尝试点亮编号为 aia_i 的灯塔。然而为了节约能源,如果灯塔 ai1a_i - 1 或灯塔 ai+1a_i + 1 已经被点亮,则灯塔 aia_i 无法被点亮,该操作将被跳过。当然,同一个灯塔只会被点亮一次。

你可以从给定的点亮序列中挑选一个子序列(保持操作的相对顺序),按照子序列的顺序依次执行点亮操作。请问,最多能成功点亮多少个灯塔?

输入格式

输入的第一行包含两个正整数 n,mn, m,用一个空格分隔。

第二行包含 mm 个正整数 a1,a2,,ama_1, a_2, \dots, a_m,相邻整数之间使用一个空格分隔。

输出格式

输出一行包含一个整数表示答案。

10 9
1 3 2 5 2 10 9 6 5
4

提示

样例说明

其中一种方案:保留子序列 1,3,5,91, 3, 5, 9,可以点亮四个灯塔。

评测用例规模与约定

对于 40%40\% 的评测用例,1n,m50001 \le n, m \le 5000

对于所有评测用例,1n,m1061 \le n, m \le 10^61ain1 \le a_i \le n