#icpc2015summerday4g. [icpc2015summer_day4_g]Surface Area of Cubes
[icpc2015summer_day4_g]Surface Area of Cubes
问题描述
Taro喜欢一个单人游戏“立方体的表面积”。
在这个游戏中,他最初有一个的长方体,由个单位立方体组成(它们都是1x1x1的立方体)。每个单位立方体的中心被放置在三维坐标处,其中都是整数$(0\leq x\leq A-1, 0\leq y\leq B-1, 0\leq z\leq C-1)$。然后,游戏主从长方体中移除了个不同的单位立方体。在移除这个立方体后,为了赢得游戏,他必须准确地告诉这个对象的总表面积。
注意,移除操作不会改变未被移除的立方体的位置。而且,不仅矩形体外表面上的立方体可以被移除,内部的立方体也可以被移除。此外,通过移除立方体,该对象可以分成多个部分。请注意,游戏的玩家还必须计算那些无法从外部访问的表面积。
Taro知道有多少个单位立方体被移除了,以及哪些立方体被移除了,但对于他来说,这个游戏非常困难,所以他想通过作弊来赢得这个游戏!你是Taro的朋友,你的工作是编写一个程序,代替Taro计算移除立方体后对象的总表面积,给定长方体的大小和被移除立方体的坐标。
输入
输入的格式如下。
测试用例的第一行包含了四个整数和$N(1\leq A,B,C\leq 10^8,0\leq N\leq \min \{1{,}000, A\times B\times C-1 \} ).$
接下来的行中,每行包含三个非负整数和,表示一个已移除立方体的坐标。你可以假设这些坐标是不同的。
输出
输出移除了个立方体后对象的总表面积。
示例输入 1
2 2 2 1
0 0 0```
### 对示例输入 1 的输出
```plain
24```
### 示例输入 2
```plain
1 1 5 2
0 0 1
0 0 3```
### 对示例输入 2 的输出
```plain
18```
### 示例输入 3
```plain
3 3 3 1
1 1 1```
### 对示例输入 3 的输出
```plain
60```