Каркас веж
Limits: 2 sec., 256 MiB
Сьогодні у Зеника важке завдання — з’єднати n веж в єдину мережу.
Усі вежі розташовані в ряд, i-та вежа в координаті xi, її висота yi. Зеник може проводити кабелі між вершинами двох веж, кабель повинен бути прямим і не перетинатись з іншими вежами. Більш формально, Зеник може провести кабель між вежами i та j, якщо відрізок між точками (xi,yi) та (xj,yj) не перетинається з жодною вежею, тобто для жодної вежі k (i<k<j) кабель не може проходити нижче yk. Зауважте, що кабелі можуть перетинатись між собою.
Зеник хоче провести кабелі так, щоб кожна вежа була з’єднана з кожною іншою напряму або через інші вежі.
Йому цікаво, яку мінімальну суму довжин кабелів він може досягти.
Input
У першому рядку задано єдине ціле число n — кількість веж.
У наступних n рядках задано по 2 цілих числа xi та yi — координата та висота i-ої вежі.
Output
Нехай d1,d2,…,dn−1 — довжини кабелів, які використає Зеник.
Виведіть єдине число d21 XOR d22 XOR … XOR d2n−1.
Зауважте, що вам потрібно мінімізувати саме d1+d2+⋯+dn−1. Гарантується, що для всіх розв’язків, які мінімізують суму довжин кабелів, відповідне значення буде однаковим.
Constraints
2≤n≤5⋅105,
1≤xi,yi≤109,
xi<xi+1.
Samples
Input (stdin) | Output (stdout) |
---|---|
4 1 2 4 7 5 1 7 8 | 13 |
Notes
В прикладі вигідно провести такі кабелі:
між першою та другою вежею довжиною √34
між другою та третьою вежею довжиною √37
між другою та четвертою вежею довжиною √10
Вам потрібно вивести 34 XOR 37 XOR 10=13.
Зауважте, що між першою та третьою вежею проводити кабель не можна, адже він перетнеться з другою вежею.