#include #include #include #include #include #include #include #include #include #include using namespace std; typedef vector VI; typedef vector VVI; typedef vector VS; typedef pair PII; typedef long long LL; typedef unsigned long long ULL; typedef pair PIL; typedef vector VPIL; #define each(i,c) for(typeof((c).begin()) i=(c).begin(); i!=(c).end(); i++) #define sort(c) sort((c).begin(),(c).end()) #define range(i,a,b) for(int i=(a); i < (b); i++) #define rep(i,n) range(i,0,n) #define MAX_INT 2147483647 int ones[20041][20041]; int dx[4] = {1,0,-1,0}; int dy[4] = {0,1,0,-1}; int square(int x){ return x*x; } bool is_in(int ax, int ay, int bx, int by){ return square(ax-bx) + square(ay-by) < 400; } void dfs(int cx, int cy, int hx, int hy){ int nx, ny; ones[hy][hx] = 0; rep(i,4){ nx = hx + dx[i]; ny = hy + dy[i]; if (ones[ny][nx] && is_in(cx,cy,nx,ny)) dfs(cx,cy,nx,ny); } } int main(){ int N, X, Y, ans; rep(i,20041) rep(j, 20041) ones[i][j] = 1; cin >> N; rep(i,N){ cin >> X >> Y; X += 20; Y += 20; if(ones[Y][X]){ dfs(X,Y,X,Y); ans += 1; } } cout << ans << endl; return 0; }