G - Construyendo la red de carreteras

Languages: C, C++, Java, Python, Kotlin
Time & Memory limits: (details)

El vendedor viajero (traveling salesman) llega al reino de Lazyland. Él planea comenzar en la capital, visitar cada ciudad y luego retornar a la capital. Él conoce las coordenadas de cada ciudad, pero no se han construido caminos aún. Es obvio que no es posible visitar todos los destinos si alguna ciudad no está conectada a todas las otras.

Asume que existen n ciudades. Sus coordenadas son (x1,y1),...,(xn,yn), y (x1,y1) es la capital. El rey quiere ayudar al viajero. Por ello, ordenó construir los caminos para el viajero. No obstante, las personas en el reino son muy perezosas.

Debido a que los ingenieros son perezosos, ellos solo pueden construir caminos entre dos ciudades (xi,yi) y (xj,yj) usando segmentos horizontales y verticales. Por lo tanto la longitud del camino será |xixj|+|yiyj|.

Debido a que los trabajadores son muy perezosos también, ellos no construirán más de n1 caminos para el viajero — ellos escucharon que n1 caminos son suficiente para conectar todos los destinos. Nota que el vendedor solo cambia de caminos en las ciudades.

El vendedor puede seleccionar los caminos a construir. Puedes decirle al vendedor cuál es la longitud de la ruta más corta que puede usar para visitar cada ciudad y regresar a la capital ?

Input

La primera línea contiene un entero n (1n10000) representando el número de destinos (ciudades). Las siguientes n líneas contendrán dos enteros cada una x, y (1000x,y1000), representando las coordenadas de las ciudades. Las coordenadas de la capital es la primera de esas líneas. Dos ciudades distintas no tendrán las mismas coordenadas.

Output

Imprime la longitud de la ruta más corta que el vendedor puede utilizar para visitar cada destino y regresar al origen.

Sample test(s)

Input
3 1 1 2 2 3 3
Output
8
Input
4 2 1 -1 2 -2 -1 1 -2
Output
24
Input
6 1 2 2 3 2 2 3 4 4 3 3 1
Output
16