Відстань на триангуляції#7564

Відстань на триангуляції

1 секунда
128 мегабайтів
Дуже легка

Дано правильний багатокутник з вершинами. Вершини багатокутника пронумеровані послідовно числами від до . Також задано триангуляцію цього багатокутника у вигляді списку з n - 3 діагоналей.

Дано запитів. Кожен запит задається номерами двох вершин. Для кожного запиту необхідно визначити найкоротшу відстань між цими вершинами, переміщуючись по сторонах або по заданим діагоналям багатокутника. Відстань визначається як загальна кількість пройдених сторін і діагоналей.

Вхідні дані

Перша строка містить ціле число n~(4 \le n \le 50\,000) — кількість вершин багатокутника.

Наступні n - 3 строки містять по два числа a_i, b_i~(1 \le a_i, b_i \le n, a_i \ne b_i) — кінці -ї діагоналі.

Наступна строка містить ціле число q~(1 \le q \le 10^5) — кількість запитів.

Наступні строки містять по два числа x_i, y_i (1 \le x_i, y_i \le n) — вершини -го запиту.

Гарантовано, що:

  • жодна діагональ не збігається зі стороною багатокутника;

  • жодні дві діагоналі не збігаються і не перетинаються.

Вихідні дані

Для кожного запиту виведіть в окремому рядку одне число — найкоротшу відстань між вказаними вершинами.

Приклади

Приклад 1

Loading
Loading