D. 上升点列point【CSPJ-2022-T4】

内存限制:512 MiB 时间限制:1000 ms 输入文件: point.in 输出文件: point.out
题目类型:传统 评测方式:文本比较

题目描述

在一个二维平面内,给定 n 个整数点 (x_i, y_i) ,此外你还可以自由添加 k 个整数点。

你在自由添加 k 个点后,还需要从 n + k 个点中选出若干个整数点并组成一个序列,使得序列中任意相邻两点间的欧几里得距离恰好为 1 而且横坐标、纵坐标值均单调不减,即 x_{i+1} - x_i = 1, y_{i+1} = y_i y_{i+1} - y_i = 1, x_{i+1} = x_i 。请给出满足条件的序列的最大长度。

输入格式

从文件 point.in 中读入数据。

第一行两个正整数 n, k 分别表示给定的整点个数、可自由添加的整点个数。

接下来 n 行,第 i 行两个正整数 x_i, y_i 表示给定的第 i 个点的横纵坐标。

输出格式

输出到文件 point.out 中。

输出一个整数表示满足要求的序列的最大长度。

样例

样例输入 #1

8 2
3 1
3 2
3 3
3 6
1 2
2 2
5 5
5 3

样例输出 #1

8

样例输入 #2

4 100
10 10
15 25
20 20
30 30

样例输出 #2

103

【样例 #3】

见附件中的 point/point3.inpoint/point3.ans

第三个样例满足 k = 0

【样例 #4】

见附件中的 point/point4.inpoint/point4.ans

数据范围与提示

保证对于所有数据满足: 1 \leq n \leq 500 0 \leq k \leq 100 。对于所有给定的整点,其横纵坐标 1 \leq x_i, y_i \leq {10}^9 ,且保证所有给定的点互不重合。对于自由添加的整点,其横纵坐标不受限制。

测试点编号 n \leq k \leq x_i,y_i \leq
1 \sim 2 10 0 10
3 \sim 4 100 100
5 \sim 7 500 0
8 \sim 10 {10}^9
11 \sim 15 100 100
16 \sim 20 {10}^9