#abc269d. [abc269_d]Do use hexagon grid

[abc269_d]Do use hexagon grid

题目描述

我们有一个无限的六边形网格,如下所示。初始时,所有的正方形都是白色的。

一个六边形单元格用(i,j)(i,j)表示,其中iijj是两个整数。
单元格(i,j)(i,j)与下面六个单元格相邻:

  • (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)

Takahashi将NN个单元格(X1,Y1),(X2,Y2),,(XN,YN)(X_1,Y_1),(X_2,Y_2),\dots,(X_N,Y_N)涂成黑色。
请计算由这些黑色单元格组成的连通分量的数量。
当可以通过重复移动到相邻的黑色单元格而在两个黑色单元格之间移动时,两个黑色单元格属于同一个连通分量。

约束条件

  • 输入中的所有值都是整数。
  • 1N10001 \le N \le 1000
  • Xi,Yi1000|X_i|,|Y_i| \le 1000
  • 对于所有的iji \ne j(Xi,Yi)(Xj,Yj)(X_i,Y_i) \ne (X_j,Y_j)

输入

从标准输入读入数据,数据格式如下:

NN

X1X_1 Y1Y_1

X2X_2 Y2Y_2

\vdots

XNX_N YNY_N

输出

输出一个整数作为答案。

示例输入 1

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

示例输出 1

3

Takahashi将单元格涂成黑色后,网格看起来如下所示。

黑色的正方形组成了以下三个连通分量:

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

示例输入 2

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

示例输出 2

4

示例输入 3

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

示例输出 3

1