module main; // https://kmjp.hatenablog.jp/entry/2015/05/04/0900 より import std; // C++のsetのようなもの alias Unit = void[0]; enum unit = Unit.init; void main() { // 入力 int N = readln.chomp.to!int; auto X = new int[](N), Y = new int[](N); // 答えの計算 int ans = 0; Unit[int][int] S; foreach (i; 0 .. N) { readln.chomp.formattedRead("%d %d", X[i], Y[i]); bool ok = true; foreach (x; max(0, X[i] - 19) .. min(20_000, X[i] + 19) + 1) { if (!ok) break; int dy = sqrt(399.0 - (x - X[i]) * (x - X[i]) + 0.001).to!int; foreach (y; max(0, Y[i] - dy) .. min(20_000, Y[i] + dy) + 1) if (x in S && y in S[x]) ok = false; } if (ok) { ans++; S[X[i]][Y[i]] = unit; } } // 答えの出力 writeln(ans); }