local mmi, mma = math.min, math.max local mfl, mce = math.floor, math.ceil local mesh = 100 local lim = 201 local t = {} for i = 1, lim do t[i] = {} for j = 1, lim do t[i][j] = {} end end local function inner(a, b, c, d) return (a - c) * (a - c) + (b - d) * (b - d) < 400 end local n = io.read("*n") for _i = 1, n do local a, b = io.read("*n", "*n") a = a + 1 b = b + 1 local ap = mce(a / mesh) local bp = mce(b / mesh) local imin = mma(1, ap - 1) local imax = mmi(lim, ap + 1) local jmin = mma(1, bp - 1) local jmax = mmi(lim, bp + 1) local found = false for i = imin, imax do for j = jmin, jmax do local tbl = t[i][j] for k = 1, #tbl do local c, d = tbl[k][1], tbl[k][2] if inner(a, b, c, d) then found = true break end end if found then break end end if found then break end end if not found then table.insert(t[ap][bp], {a, b}) end end local ret = 0 for i = 1, lim do for j = 1, lim do ret = ret + #t[i][j] end end print(ret)