Нарешті задача без легенди
Дано три масиви довжини .
Будується неорієнтований зважений граф, що складається з вершин, так що ребро між двома різними вершинами і існує тоді і тільки тоді, коли не є надмаскою , а вага цього ребра буде .
Вам потрібно відповісти на запитів, кожен з яких визначається двома числами і . Для кожного запиту потрібно вивести довжину найкоротшого шляху від вершини до вершини , або , якщо такого шляху не існує. Довжина шляху — це сума ваг його ребер, а найкоротший шлях — це той, що має мінімальну довжину.
Тут означає бітове OR, а означає бітове AND.
Ми вважаємо ціле число надмаскою цілого числа , якщо і тільки якщо всі біти, які увімкнені в , також увімкнені в , більш формально, якщо .
Вхідні дані
Перший рядок містить одне ціле число — розмір графа.
Другий рядок містить цілих чисел .
Третій рядок містить цілих чисел .
Четвертий рядок містить цілих чисел .
П'ятий рядок містить одне ціле число .
Наступні рядків містять пару різних цілих чисел — вершини, між якими потрібно знайти найкоротший шлях.
Вихідні дані
Для кожного запиту потрібно вивести довжину найкоротшого шляху, або , якщо такого шляху не існує.
Приклади
Примітка
Граф для першого прикладу.
У першому запиті запитується про найкоротший шлях між вершиною і , оптимальний шлях — — — , довжина — .
Оцінювання
( балів): , ;
( балів): , ;
( балів): ;
( балів): , , ;
( балів): ;
( балів): , ;
( балів): без додаткових обмежень.