Chef bought a huge (effectively infinite) planar island and built $N$ restaurants (numbered $1$ through $N$) on it. For each valid $i$, the Cartesian coordinates of restaurant $i$ are $(X_i, Y_i)$.
Now, Chef wants to build $N-1$ straight narrow roads (line segments) on the island. The roads may have arbitrary lengths; restaurants do not have to lie on the roads. The slope of each road must be $1$ or $-1$, i.e. for any two points $(x_1, y_1)$ and $(x_2, y_2)$ on the same road, $|x_1-x_2| = |y_1-y_2|$ must hold.
Let's denote the minimum distance Chef has to walk from restaurant $i$ to reach a road by $D_i$. Then, let's denote $a = \mathrm{max}\,(D_1, D_2, \ldots, D_N)$; Chef wants this distance to be minimum possible.
Chef is a busy person, so he decided to give you the job of building the roads. You should find a way to build them that minimises $a$ and compute $a \cdot \sqrt{2}$.

-----Input-----
- The first line of the input contains a single integer $T$ denoting the number of test cases. The description of $T$ test cases follows.
- The first line of each test case contains a single integer $N$.
- $N$ lines follow. For each valid $i$, the $i$-th of these lines contains two space-separated integers $X_i$ and $Y_i$.

-----Output-----
For each test case, print a single line containing one real number — the minimum distance $a$ multiplied by $\sqrt{2}$. Your answer will be considered correct if its absolute or relative error does not exceed $10^{-6}$.

-----Constraints-----
- $1 \le T \le 100$
- $2 \le N \le 10^4$
- $|X_i|, |Y_i| \le 10^9$ for each valid $i$

-----Subtasks-----
Subtask #1 (10 points):
- $1 \le T \le 10$
- $2 \le N \le 5$
- $|X_i|, |Y_i| \le 10$ for each valid $i$
- $a \cdot \sqrt{2}$ is an integer
Subtask #2 (90 points): original constraints

-----Example Input-----
2
3
0 0
0 1
0 -1
3
0 1
1 0
-1 0

-----Example Output-----
0.5
0

-----Explanation-----
Example case 1: We should build roads described by equations $y-x+0.5 = 0$ and $y-x-0.5 = 0$.
Example case 2: We should build roads described by equations $y-x-1 = 0$ and $y+x-1 = 0$.

```python

USER_FILENAME = "<user_code>"
import sys, json, builtins
import math, heapq, bisect, itertools, functools, collections, statistics, fractions, decimal, operator, array, random, re, string, os, pathlib
try:
    import resource as _res
except Exception:
    _res = None
from collections import Counter, defaultdict, deque, OrderedDict
from functools import lru_cache, reduce
from itertools import accumulate, permutations, combinations, product
from math import gcd, ceil, floor, sqrt
from decimal import Decimal
try:
    from typing import *
except Exception:
    pass
try:
    sys.setrecursionlimit(1_000_000)
except Exception:
    pass
try:
    import site as _site
    try:
        _sys_sites = _site.getsitepackages() if hasattr(_site, "getsitepackages") else []
        for _p in _sys_sites:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
    try:
        _usp = _site.getusersitepackages()
        if isinstance(_usp, str):
            _usp = [_usp]
        for _p in _usp:
            if _p and _p not in sys.path:
                sys.path.append(_p)
    except Exception:
        pass
except Exception:
    pass

ns = {"__name__": "__main__"}
for _k, _v in list(globals().items()):
    if not _k.startswith("_"):
        ns[_k] = _v
_CODE = "# cook your dish here\n'''\nt=int(input())\n\nl=[]                                    #array of coordinates\nwhile t:\n    n=int(input())\n    while n:\n     coor=int(input()),int(input())  #coordinates\n     l.append(coor)\n     n-=1\n  \n    t-=1\n    lcopy=sorted(l)\n    for i in range(len(l)):\n     length=len(lcopy)\n     for j in range(i+1,len(l)):\n      if abs(l[i][0]-l[j][0])==abs(l[i][1]-l[j][1]):\n       if l[j] in lcopy: lcopy.remove(l[j])\n     if length!=len(lcopy):\n      if l[i] in lcopy: lcopy.remove(l[i])\n    print(l)\n\n    print(lcopy)\n'''\n\nimport cmath\nimport math\n\n\n\ndef f(l):\n #Rotate the points by 45 degrees\n l1=[]\n for i in range(len(l)):\n  w=cmath.polar(l[i])\n  z=cmath.rect(w[0],w[1]-cmath.pi/4)\n  l1.append(z) \n\n #print(l1)\n l1.sort(key=lambda z:z.real)\n for i in range(len(l1)-1):\n  diff=abs(l1[i].real-l1[i+1].real)\n  if diff==0:\n    print(0)\n    return\n  if i==0:\n   minDiffX=diff\n  else:\n   minDiffX=min(diff,minDiffX)\n #print(minDiffX)\n\n l1.sort(key = lambda x: x.imag)\n for i in range(len(l1)-1):\n  diff=abs(l1[i].imag-l1[i+1].imag)\n  if diff==0:\n    print(0)\n    return\n  if i==0:\n   minDiffY=diff\n  else:\n   minDiffY=min(diff,minDiffY)\n #print(minDiffY)\n\n #print(l1)\n '''d=min(abs(l[0].real-l[1].real),abs(l[0].imag-l[1].imag))\n    for i in range(1,len(l1)):\n     for j in range(i+1,len(l1)):\n      x=min(abs(l[i].real-l[j].real),abs(l[i].imag-l[j].imag))\n      if x<d: d=x\n'''\n print(min(minDiffX,minDiffY)*math.sin(math.pi/4)) \n\nT=int(input())\n\nwhile T:\n l=[] #array of coordinates\n\n n=int(input())\n while n:\n  #print(n)\n  t=input().split() #coordinates\n  #print(t)\n  l.append(complex(int(t[0]),int(t[1])))\n  n-=1\n\n f(l)\n\n T-=1\n"
_co = compile(_CODE, USER_FILENAME, "exec")
exec(_co, ns, ns)

```

Measured memory_bytes: 24164