#abc023c. [abc023_c]収集王
[abc023_c]収集王
问题
高桥准备移动到一个房间。
该房间是一个由 行 列的正方形网格组成的形状。其中第 行第 列的格子称为 格子。
这些格子中共有 个糖果。每个糖果都有从 到 的编号,糖果 ()位于格子 上。其中任意两个糖果不在同一个格子上。
高桥会移动到任意一个格子。之后,高桥会按照以下方式获取糖果:
- 首先,他会获取与他所在格子同行的所有格子上的糖果。
- 然后,他会获取与他所在格子同列的所有格子上的糖果。
除此之外,高桥不会做其他任何行动。
高桥希望能够获得恰好 个糖果。请计算满足这个条件的移动目标格子的总数。
输入
输入以以下格式从标准输入中给出。
:
- 第一行包含三个整数 ()、()和 (),以空格分隔。表示房间由 行 列组成, 是高桥希望获得的糖果数量。
- 第二行包含一个整数 (),表示糖果的数量。
- 接下来的 行描述糖果的相关信息。其中第 行()包含两个整数 ()和 (),以空格分隔。表示糖果 位于格子 上。
- 对于 ,有 。
部分分
本问题设置了部分分。
- 当 、 和 的数据集 1 正确时,可获得 30 分。
- 在无附加约束的数据集 2 正确时,除上述部分外还可额外获得 70 分。
输出
请输出满足糖果数量恰好为 的移动目标格子的总数,以一行输出。输出末尾需换行。
示例输入1
3 5 3
5
1 2
2 1
2 5
3 2
3 5
示例输出1
5
例如,考虑高桥移动到格子 的情况。
- 糖果 1 位于格子 上。由于这个格子与高桥所在的格子在同一列上,高桥会获取糖果 1。
- 糖果 2 位于格子 上。由于这个格子既不在高桥所在的行上,也不在同一列上,高桥不会获取糖果 2。
- 糖果 3 位于格子 上。由于这个格子既不在高桥所在的行上,也不在同一列上,高桥不会获取糖果 3。
- 糖果 4 位于格子 上。由于这个格子与高桥所在的格子是同一个格子(即同一行且同一列),高桥会获取糖果 4。
- 糖果 5 位于格子 上。由于这个格子与高桥所在的格子在同一行上,高桥会获取糖果 5。
因此,高桥会恰好获取糖果 1、4 和 5,总共 3 个。所以格子 是一个满足糖果数量恰好为 的移动目标格子。
其他满足条件的格子包括 、、 和 ,所以输出为 5。
示例输入2
7 3 1
4
3 2
3 3
4 2
4 3
示例输出2
0
无论如何移动,都无法恰好获取 1 个糖果。
示例输入3
5 5 2
5
1 1
2 2
3 3
4 4
5 5
示例输出3
20