#P15646. [Bulgarian2024训练营]Squares正方形

    ID: 14858 传统题 2000ms 512MiB 尝试: 1 已通过: 1 难度: 7 上传者: 标签>计算几何算法基础二分排序贪心CF2300

[Bulgarian2024训练营]Squares正方形

题目描述

一款新的手机游戏在市场上流行起来。游戏开始时,屏幕上给出若干个点,玩家需要用若干个正方形覆盖这些点,并使得最大的正方形尽可能小。

所有正方形的边都必须与手机屏幕的边平行,并且正方形之间不能相交,也不能互相包含。

游戏一共有三个等级:

  • 第 1 级:用 1 个正方形覆盖所有点;
  • 第 2 级:用 2 个正方形覆盖所有点;
  • 第 3 级:用 3 个正方形覆盖所有点。

Pesho 很快解决了第 1 级,但在后面的等级遇到了困难。请你编写程序 squares:给定 NN 个点和正方形数量 KK,求出如何用 KK 个正方形覆盖所有点,使得这些正方形中最大的边长尽可能小。

我们把手机屏幕看作笛卡尔坐标系,所有给定点以及输出正方形的顶点都必须是整数坐标点。

输入格式

第一行输入两个正整数 N,KN,K,分别表示点的数量和正方形的数量。

接下来 NN 行,每行输入两个整数 x,yx,y,表示一个点的坐标。

输出格式

输出 KK 行。

ss 行输出三个整数 xs,ys,lsx_s,y_s,l_s,表示第 ss 个正方形的左下角坐标为 (xs,ys)(x_s,y_s),边长为 lsl_s

如果存在多种最优方案,输出任意一种即可。

数据范围

  • 1N1051 \le N \le 10^5
  • 1K31 \le K \le 3
  • 109x,y109-10^9 \le x,y \le 10^9
  • 3×109xs,ys3×109-3\times 10^9 \le x_s,y_s \le 3\times 10^9
  • 1ls2×1091 \le l_s \le 2\times 10^9

子任务

子任务 分值 依赖子任务 NN KK 其他限制
1 0 - - 样例
2 5 105\le 10^5 =1=1 -
3 21 =2=2
4 12 12\le 12 =3=3
5 30 4 103\le 10^3
6 32 4-5 105\le 10^5

一个子任务的分数仅在通过该子任务的全部测试点以及它依赖的子任务后获得。

样例 1

输入

3 1
1 1
1 3
2 2

输出

0 1 2

样例 2

输入

5 2
1 3
3 1
5 5
5 10
7 7

输出

1 1 4
5 7 3

样例 3

输入

5 3
1 3
3 1
5 5
5 10
7 7

输出

1 1 2
5 5 2
5 10 1