// YukiCoderなら通る #include <algorithm> #include <cstdio> #include <vector> int N; std::vector<std::vector<bool>> hasCircle; int distance(int x1, int y1, int x2, int y2){ int dx = x1-x2, dy = y1-y2; return dx * dx + dy * dy; } int main(){ hasCircle.resize(20001); for(int i=0;i<=20000;i++){ hasCircle[i].resize(20001); } scanf("%d", &N); int n = 0; for(int i=0;i<N;i++){ int x, y; scanf("%d %d", &x, &y); bool flag = false; for(int j=-20;j<=20;j++){ for(int k=-20;k<=20;k++){ int x2 = x + k, y2 = y + j; if(x2 < 0 || x2 > 20000 || y2 < 0 || y2 > 20000){ continue; } if(!hasCircle[y2][x2]){continue;} if(distance(x, y, x2, y2) < 400){ flag = true; break; } } if(flag){break;} } if(!flag){ hasCircle[y][x] = true; n += 1; } } printf("%d\n", n); }