#P14726. [Bulgarian2021春季赛]iso

[Bulgarian2021春季赛]iso

题目描述

新冠医院“希望”号的主治疗区可以看作一个由立方体病房组成的三维网格。尽管昼夜不停地消毒,感染仍然渗入了其中一些病房,导致它们被污染。

院长必须立刻将所有受感染的病房隔离起来,以尽可能快地阻止感染继续扩散。为了尽快完成隔离,即使需要把一些未感染的房间和感染房间一起封闭,也可以接受。

隔离围挡由面板构成。每块面板都被插入在两间病房的墙壁之间,因此每块面板都与某一坐标轴平行,并且每块面板恰好分隔两间病房。安装一块面板需要 1 分钟

为了实现完全隔离,每一个围挡都必须形成一个封闭体积

请编写程序 iso.cpp。给定所有受感染病房的坐标,求出完成隔离所需的最少时间。

输入格式

第一行输入一个正整数 NN,表示受感染病房的数量。
接下来 NN 行,每行包含三个整数 Xi,Yi,ZiX_i, Y_i, Z_i,表示一个受感染病房的位置。

输出格式

输出一个正整数,表示完全解决该问题所需的最少分钟数。

数据范围

  • 0Xi,Yi,Zi<500 \le X_i, Y_i, Z_i < 50
  • 输入中的每个三元组 (Xi,Yi,Zi)(X_i, Y_i, Z_i) 都是唯一的

子任务

只有当你的程序通过该子任务中的所有测试时,才能获得对应分数。

子任务 分值 额外限制
1 6 Yi,Zi=0Y_i, Z_i = 0
2 21 Zi=0Z_i = 0
3 38 Xi,Yi,Zi<15X_i, Y_i, Z_i < 15
4 35

样例

输入样例 1

1
0 0 0

输出样例 1

6

输入样例 2

2
0 0 0
0 0 1

输出样例 2

10

输入样例 3

3
0 0 0
0 0 1
0 1 1

输出样例 3

14