# El par más cercano

Una empresa instala sensores de calidad del aire en una ciudad. Cada sensor está en un punto del
plano, con coordenadas enteras en metros, y dos sensores muy cercanos miden casi lo mismo. Antes de
aprobar el plano, la empresa quiere saber qué tan cerca quedaron los dos sensores más próximos. El plano
puede tener errores: dos filas pueden traer exactamente el mismo punto, y muchos sensores pueden estar
sobre una misma calle recta.

Para no trabajar con decimales, se pide el **cuadrado** de la menor distancia entre dos sensores. Si
dos sensores están en (x₁, y₁) y (x₂, y₂), ese cuadrado es (x₁ − x₂)² + (y₁ − y₂)².

## Entrada

La primera línea tiene un entero n, la cantidad de sensores. Cada una de las n líneas siguientes tiene dos
enteros x e y, las coordenadas de un sensor. Un mismo punto puede aparecer varias veces.

## Salida

Una línea con un entero: el cuadrado de la menor distancia entre dos sensores distintos, es decir, dos filas
distintas de la entrada. Si dos filas traen el mismo punto, la respuesta es 0.

## Límites

- 2 ≤ n ≤ 200 000
- −10⁹ ≤ x, y ≤ 10⁹

## Ejemplo

Entrada:

```text
6
2 3
12 30
40 50
5 1
12 10
3 4
```

Salida:

```text
2
```

Los sensores más cercanos son (2, 3) y (3, 4): (2 − 3)² + (3 − 4)² = 2.

## Tiempo

2 segundos por caso. Se compila con `g++ -Wall -Wextra -std=c++20 -O2`.

## Cómo avanzar

```sh
make        # compila solution.cpp en build/
make test   # corre el juez con todos los casos
```

Los casos grandes no están guardados: `make test` los genera con los programas `casos/gen_NN.cpp`.

1. Antes de programar, calculen con los límites el mayor valor posible de la respuesta. ¿Cabe en `int`? ¿Y en
   `long long`? ¿Qué pasa con cada resta y con cada producto en el camino? Escriban la cuenta.
2. Escriban la fuerza bruta en un archivo aparte y comprueben que el juez la acepta en los casos pequeños.
3. Escriban la versión rápida. Hagan un pequeño generador de entradas al azar y comparen las dos versiones con
   muchas entradas pequeñas, incluidas entradas con pocos valores distintos, para que salgan repetidos.
4. Pasen todos los casos, incluidos los puntos repetidos y todos los puntos sobre una misma vertical.
