QOJ.ac

QOJ

Time Limit: 5.0 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#9297. Лабиринт

Statistics

Из-за сложности задач некоторые участники решают сбежать с этого соревнования. Однако, чтобы этого не случилось, ЗЛЫЕ авторы задач построили лабиринт у выхода со стадиона. Лабиринт представляет собой сетку $n\times m$, в которой находятся вход, выход и $k$ чёрных дыр. Участник, случайно наступивший на чёрную дыру, провалится в неё и уже никогда не сможет сбежать с соревнования.

Хуже того, авторы задач могут менять координаты входа и выхода. Вы — бедный участник, который начинает путь со входа и хочет добраться до выхода, не наступив ни на одну чёрную дыру. За один шаг вы можете перейти только в одну из четырёх соседних клеток. Вы хотите знать, какое минимальное количество шагов нужно для пути от входа до выхода после каждого изменения их координат авторами задач.

Входные данные

Первая строка входных данных содержит четыре целых числа $n,m,k,q$ ($1\le n,m\le200\,000$, $nm\le200\,000$, $0\le k\le42$, $1\le q\le100\,000$) — количество строк, количество столбцов, количество чёрных дыр в лабиринте и количество запросов соответственно.

Следующие $k$ строк описывают чёрные дыры. Каждая содержит два целых числа $x,y$ ($1\le x\le n$, $1\le y\le m$) — координаты чёрной дыры. Никакие две чёрные дыры не находятся в одной клетке.

Последние $q$ строк описывают запросы. Каждая содержит четыре целых числа $x_s,y_s,x_t,y_t$ ($1\le x_s,x_t\le n$, $1\le y_s,y_t\le m$), где $(x_s,y_s)$ — координаты входа, а $(x_t,y_t)$ — выхода.

Выходные данные

Для каждого запроса выведите в отдельной строке число — минимальное количество шагов для пути от входа до выхода. Если добраться до выхода невозможно, выведите -1. Если вход или выход совпадает с чёрной дырой, путь следует считать невозможным.

Примеры

Входные данные 1

5 5 4 7
2 2
2 3
3 2
3 3
2 1 3 4
1 1 1 1
2 2 2 2
1 1 1 5
2 2 5 5
2 1 2 4
1 1 3 3

Выходные данные 1

6
0
-1
4
-1
5
-1

Входные данные 2

2 3 2 1
1 2
2 1
1 1 2 3

Выходные данные 2

-1

Примечание

Ниже показаны лабиринт и первый запрос из первого примера.

problem_9297_e29252c76e1948daaf923bdff06c23e3.png

(a) Лабиринт. (b) Один из возможных кратчайших путей для первого запроса. Обозначения: вход, выход, чёрная дыра, один шаг.

Рисунок 1: Иллюстрации к примеру.

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#222EditorialOpen题解jianglyView

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.