| Innopolis Open 2024. Отборочный этап 1 |
|---|
| Закончено |
VK очень часто проводит хакатоны, где программисты решают разные задачи. Сейчас VK готовит новый хакатон, в котором все желающие могут попробовать себя в разработке уникального полезного приложения или сервиса для одного из нескольких треков, в числе которых Финтех, Культура, Медиа и другие.
Как и на любом хорошо организованном хакатоне, чтобы участники могли полностью посвятить себя решению поставленной задачи, им предоставляется тщательно организованное место проведения. В число приятных бонусов часто входят еда и напитки, которыми можно подкрепиться в течение нескольких дней, проводимых участниками на площадке.
В этот раз VK организует новый хакатон, и на него на площадке проведения собрались $$$m$$$ участников. Для этих $$$m$$$ участников организаторы заказали $$$n$$$ пицц, которые на площадке расположили в ряд и пронумеровали от $$$1$$$ до $$$n$$$. Известно, что
Периодически участники встают со своих мест и подходят к ряду пицц, чтобы взять один кусочек. Участник номер $$$i$$$ подходит к пицце с номером $$$s_i$$$ в момент времени $$$t_i$$$, после чего моментально находит кусочек пиццы с наименьшей толщиной теста среди пицц от $$$1$$$-й до $$$s_i$$$-й и начинает двигаться в его сторону. На перемещение между двумя соседними пиццами у каждого участника уходит одинаковое время — $$$v$$$ секунд. Несколько участников могут одновременно находиться около одной пиццы.
Как только участник подходит к пицце, кусочек в которой он выбрал, он его забирает и уходит обратно на свое место. Если несколько участников выбрали один и тот же кусочек и подошли к нему одновременно, кусочек забирает участник с меньшим номером. При этом если кусочек, на который рассчитывал участник, кто-то забрал, этот участник моментально выбирает новую цель по тому же алгоритму: он смотрит на все пиццы от первой до его текущей позиции, выбирает среди них минимум, и начинает двигаться к нему.
Формально этот процесс можно описать следующим образом. В каждое целое число секунд $$$t$$$:
По информации о подходах участников к пиццам определите для каждого участника, кусочек пиццы какой толщины ему достался и сколько времени он провел в ряду.
В первой строке ввода через пробел даны целые числа $$$n$$$, $$$m$$$ и $$$v$$$ — количество пицц, количество участников и время перемещения каждого участника между соседними пиццами ($$$1 \le n, m \le 10^5$$$; $$$1 \le v \le 10^9$$$).
Во второй строке через пробел перечислены $$$n$$$ целых чисел $$$a_i$$$ — толщина первого кусочка каждой пиццы ($$$0 \le a_i \le 10^9$$$).
В $$$i$$$-й из следующих $$$m$$$ строк даны параметры $$$i$$$-го участника: два целых числа $$$s_i$$$ и $$$t_i$$$, записанные через пробел — стартовое положение и время подхода участника к ряду пицц ($$$1 \le s_i \le n$$$; $$$0 \le t_i \le 10^9$$$).
Выведите $$$m$$$ строк, в $$$i$$$-й из которых выведите через пробел пару чисел: толщину теста в кусочке пиццы, полученном $$$i$$$-м участником, и время, которое участник потратит на то, чтобы до него дойти.
Баллы за каждую подзадачу начисляются только в случае, если все тесты этой подзадачи и необходимых подзадач успешно пройдены.
| Подзадача | Баллы | Ограничения | Необходимые подзадачи |
| 0 | – | примеры из условия | |
| 1 | 8 | $$$\max(t_i) \le 10^4$$$; $$$n, m, v \le 100$$$ | 0 |
| 2 | 10 | все $$$s_i$$$ равны и все $$$t_i$$$ равны | |
| 3 | 13 | $$$|a_i - a_j| \ge m$$$ для любых $$$i \ne j$$$ | |
| 4 | 19 | $$$n, m \le 1000$$$ | 0, 1 |
| 5 | 16 | $$$m \le 1000$$$ | 0, 1, 4 |
| 6 | 34 | нет | 1 – 5 |
5 3 11 2 3 4 55 13 22 4
2 3 1 2 2 1
7 7 31 5 3 2 5 4 15 42 34 21 67 83 22 4
2 3 1 3 5 6 2 0 1 0 4 6 3 3
В первом примере события будут происходить в следующем порядке:
| Название |
|---|


