题目描述
题目译自 XXII Olimpiada Informatyczna — II etap Trzy Wieże
Bajtazar 的王国由 n 颗行星组成。为了方便管理,他为王国建立了一个三维直角坐标系,将每颗行星简化为坐标系中的一个点,坐标均为非负整数,且任意两颗行星不会重合。
Bajtazar 计划将大约 k 颗行星的管辖权交给女儿 Bajtynia,并用一个与坐标轴平行的长方体围栏隔开这些行星。他希望围栏内的行星数量在 k 到 ⌈23k⌉ 之间(⌈x⌉ 表示不小于 x 的最小整数),包含围栏边界上的行星。围栏的长方体边长可为 0。你的任务是帮助 Bajtazar 确定围栏的位置,或判断是否无法满足要求。
输入格式
第一行包含一个正整数 t,表示测试数据数量。
每组测试数据描述如下:
第一行包含两个正整数 ni, ki (2≤ki<ni),分别表示王国行星总数和 Bajtazar 希望围入的行星数下限。
接下来的 ni 行,每行包含三个整数 xi,j, yi,j, zi,j (0≤xi,j,yi,j,zi,j≤109),表示第 j 颗行星的坐标。
输出格式
输出 t 行,每行对应一组测试数据。若第 i 个测试数据可构造一个与坐标轴平行的长方体围栏,围入 ki 到 ⌈23ki⌉ 颗行星(含边界),则输出六个整数 xi′,yi′,zi′,xi′′,yi′′,zi′′ ($0 \leq x_i', y_i', z_i', x_i'', y_i'', z_i'' \leq 10^9$, xi′≤xi′′,yi′≤yi′′,zi′≤zi′′),表示围栏为 $[x_i', x_i''] \times [y_i', y_i''] \times [z_i', z_i'']$。
若无法构造符合要求的围栏,输出一个整数 −1。若存在多个解,输出任意一种。
样例
输入
4
4 3
1 2 1
0 0 2
3 3 3
2 1 0
5 3
3 0 0
3 2 0
3 3 0
3 5 0
3 6 0
7 6
6 0 0
6 1 0
6 2 0
6 3 0
7 0 0
7 1 0
7 3 0
10 7
0 0 0
0 0 2
0 2 0
0 2 2
1 1 1
2 0 0
2 0 2
2 2 0
2 2 2
3 1 1
输出
0 0 0 2 2 2
3 2 0 3 6 0
6 0 0 7 3 0
0 0 0 2 2 2
第一组数据:围栏包含 k1=3 颗行星。
第二组数据:围栏包含 4 颗行星,满足 k2=3 到 ⌈29⌉=5 的要求,围栏为一维线段。
第三组数据:围栏包含 7 颗行星,满足 k3=6 到 ⌈23⋅6⌉=9 的要求,围栏为矩形。
第四组数据:围栏包含 9 颗行星,满足 k4=7 到 ⌈23⋅7⌉=11 的要求。
附加样例
- t=1, n1=8, k1=5,所有行星坐标 x1,j,y1,j,z1,j≤1,样例答案为 0,0,0,1,1,1。
- t=1, n1=100, k1=10,行星坐标为 x1,j=j, y1,j=z1,j=0,样例答案为 8,6,0,0,1,0。
- t=1, n1=900, k1=100,行星坐标为 x1,j=y1,j=z1,j=j,样例答案为 75,175,175,900,900,900。
- t=1, n1=500000, k1=100000,行星坐标为 x1,j=jmod101, y1,j=jmod51, z1,j=jmod113,样例答案为 4,10,17,98,50,75。
数据范围与提示
详细子任务附加限制及分值如下表所示。
| 子任务编号 |
附加限制 |
分值 |
| 1 |
t≤50000, ni≤10 |
16 |
| 2 |
t≤50, N≤200 |
| 3 |
t≤50, N≤5000 |
32 |
| 4 |
t≤50, N≤500000 |
36 |