#icpc2016autumnh. [icpc2016autumn_h]Pipe Fitter and the Fierce Dogs
[icpc2016autumn_h]Pipe Fitter and the Fierce Dogs
问题陈述
你作为国际管道连接社区(ICPC)的一名自豪的管道工,承担了一项新任务。你负责的管道工作区域是一个长宽分别为 和 的矩形。我们将西到东的第 个方块和北到南的第 个方块称为 。最西边和最北边的方块是 ,最东边和最南边的方块是 。为了使这个区域成为一个美丽的景色,方块 只有在 和 都是奇数时才有房屋。
你的任务是在该区域内建立一个供水管网,以便通过网络为该区域内的每个房屋提供水源。一个供水管网由管道组成。一个管道由一个或多个水管连接而成,具有 条水管的管道的构造如下:
- 选择一个起始的房屋,用一个 特殊管道 将该房屋连接到地下水源。
- 选择第 个房屋 (),将第 个房屋与第 个房屋用一个 普通管道 连接起来。在这种情况下,由于区域是倾斜的,选择一个下一个 房屋有一定条件。设 是第 个房屋所在方块。则第 个房屋必须位于 、 或 中的一个位置。连接两个房屋的普通管道必须位于 、 或 中的一个位置。
此外,在建立多个管道时,你还需要注意以下事项:
- 每个房屋恰好通过一个管道供水。
- 一个方块可以容纳多个水管。
在你的任务中,普通管道是相同的,因此你可以使用任意数量的普通管道。另一方面,特殊管道是特殊的,因此在这个任务中可用的特殊管道数量受到 ICPC 规定的限制。
除了可用特殊管道的限制外,还有另一个妨碍你的管道工作的因素:凶猛的狗。一些没有房屋的方块似乎是凶猛狗的家。每只狗总是待在它的家所在的方块。由于一些狗不能居住在与其家相同的方块上,你可以假设每个方块只有一只狗,或者没有狗。
下面的图示是一个 区域内一个含有 4 条特殊管道的供水管网的示例。这对应于第一个样例。
作为一名自豪的管道工,你希望尽快完成这个任务。幸运的是,你获得了一份含有狗的家所在方块的清单。在成为一名管道工之前,你经常参加程序设计竞赛。因此,你决定编写一个程序来确定是否可以构建一个供水管网,使得通过有限数量的特殊管道能够为每个房屋提供水源,并且如果可以的话,计算建立它所需的最小总时间成本。
输入
输入包含一个单独的测试用例。
...
一个测试用例中的所有数字都是整数。第一行包含三个整数 、 和 。 和 表示矩形区域的大小。 是从西到东的方块数目 (), 是从北到南的方块数目 ()。 和 必须是奇数。 是你在该任务中可以使用的特殊管道的数量 ()。第二行包含一个整数 (),表示该区域内狗的数量。接下来的 行中,每行包含两个整数 和 ,表示第 只凶猛狗的家所在方块为 。这些数字满足以下条件:
- ,。
- 和 中至少有一个是偶数。
- 当 时,。即,两只或更多的狗不在同一个方块上。
输出
如果我们能够构建一个供水管网,使得通过有限数量的特殊管道可以为每个房屋提供水源,则输出建造它所需的最小总时间成本。如果不能,则输出 -1。
样例输入 1
5 5 4
6
3 2
4 2
5 2
1 4
3 4
5 4```
### 样例输出 1
```plain
6```
### 样例输入 2
```plain
5 3 1
0```
### 样例输出 2
```plain
-1```
### 样例输入 3
```plain
9 5 100
5
2 1
1 2
3 4
4 3
2 2```
### 样例输出 3
```plain
0```
### 样例输入 4
```plain
5 5 3
4
1 2
5 2
1 4
5 4```
### 样例输出 4
```plain
8```
### 样例输入 5
```plain
9 5 5
10
2 1
2 2
3 2
5 2
8 2
4 3
2 4
3 4
5 4
8 4```
### 样例输出 5
```plain
10```