#ABC269D. [ABC269D] 使用六边形网格(Do use hexagon grid)

    ID: 2759 Type: Default 1000ms 256MiB Tried: 0 Accepted: 0 Difficulty: (None) Uploaded By: Tags>ABC入门算法闯关搜索类问题初探

[ABC269D] 使用六边形网格(Do use hexagon grid)

题目描述

我们有一个如下所示的无限大的六边形网格。最初,所有格子都是白色的。

一个六边形格子可以用两个整数 iijj 表示为 (i,j)(i,j)

格子 (i,j) (i,j) 与以下 66 个格子相邻: (i1,j1)(i-1,j-1) (i1,j) (i-1,j) (i,j1) (i,j-1) (i,j+1) (i,j+1) (i+1,j) (i+1,j) (i+1,j+1) (i+1,j+1)

小高将 NN 个格子 (X1,Y1),(X2,Y2),,(XN,YN) (X_1,Y_1),(X_2,Y_2),\dots,(X_N,Y_N) 涂成黑色。

请求出黑色格子形成的连通分量的数量。

这里,如果两个黑色格子之间可以通过若干个相邻的黑色格子移动到达,则认为这两个黑色格子属于同一个连通分量。

输入格式

输入按以下格式从标准输入给出:

N N

X1 X_1 Y1 Y_1

X2 X_2 Y2 Y_2

\vdots

XN X_N YN Y_N

输出格式

输出所求答案。

输入输出样例 #1

输入 #1

6
-1 -1
0 1
0 2
1 0
1 2
2 0

输出 #1

3

输入输出样例 #2

输入 #2

4
5 0
4 1
-3 -4
-2 -5

输出 #2

4

输入输出样例 #3

输入 #3

5
2 1
2 -1
1 0
3 1
1 -1

输出 #3

1

说明/提示

样例 1 解释

小高将格子涂黑后,网格如下图所示。

黑色格子形成以下三个连通分量:

  • (1,1)(-1,-1)
  • (1,0),(2,0)(1,0),(2,0)
  • (0,1),(0,2),(1,2)(0,1),(0,2),(1,2)

数据范围

  • 输入中的所有值都是整数
  • 1  N  1000 1\ \le\ N\ \le\ 1000
  • Xi,Yi  1000 |X_i|,|Y_i|\ \le\ 1000
  • (Xi,Yi) (X_i,Y_i) 两两不同。