QOJ.ac

QOJ

Límite de tiempo: 0.7 s Límite de memoria: 84 MB Puntuación total: 100

#13467. Менеджер островов

Estadísticas

Hehezhou недавно приобрел остров $\alpha$ и планирует создать на нем систему управления.

Общая информация об острове $\alpha$:

  • Остров $\alpha$ представляет собой прямоугольник размером $n$ строк на $m$ столбцов.
  • Рельеф острова неоднороден. Если разделить остров на $n$ строк и $m$ столбцов, то высота участка в $i$-й строке и $j$-м столбце будет равна $h_{i,j}$.
  • Высоты всех участков находятся в диапазоне $[1, n\times m]$, и все они различны.

Для эффективного управления островом $\alpha$ у Hehezhou возникла предварительная идея:

Когда Hehezhou стоит в определенной позиции, он может контролировать все участки в этой строке и в этом столбце.

Далее Hehezhou делит землю на $4$ части, как показано на рисунке:

На этом рисунке показано, что Hehezhou стоит в зеленой области и может контролировать все позиции в зеленой, синей и желтой областях.

Однако Hehezhou не может контролировать четыре области A, B, C и D. Поэтому он решает передать эти земли своим подчиненным, причем один подчиненный может получить только одну область. Его подчиненные также распределяют землю между своими подчиненными аналогичным образом... В частности, если какая-либо из областей A, B, C или D вырождается в пустую область, то эта область больше не распределяется.

У Hehezhou и его подчиненных есть свои предпочтения:

  • Он может захотеть стоять в самой высокой точке, чтобы «сиять, как красное солнце».
  • Он может захотеть стоять в самой низкой точке, чтобы «скрыться и стать королем теней».

То же самое касается подчиненных Hehezhou и их подчиненных. В частности, пусть Hehezhou будет подчиненным $0$-го уровня, подчиненный Hehezhou — подчиненным $1$-го уровня, подчиненный подчиненного Hehezhou — подчиненным $2$-го уровня и так далее. Дана последовательность $a$ длины $\min(n,m)$. Если человек является подчиненным $k$-го уровня:

  • Если $a_k=0$, он встанет в самой низкой точке полученной им земли;
  • Иначе, если $a_k=1$, он встанет в самой высокой точке полученной им земли.

«Брат моего брата — не мой брат». Люди, участвующие в управлении этой землей, признают только своего непосредственного начальника.

Hehezhou хочет знать, кто является начальником каждого человека, участвующего в управлении островом $\alpha$.

Выведите матрицу размером $n\times m$:

  • Если в $i$-й строке и $j$-м столбце никто не стоит или там стоит сам Hehezhou, то элемент матрицы в $i$-й строке и $j$-м столбце равен $0$;
  • В противном случае элемент матрицы в $i$-й строке и $j$-м столбце равен высоте позиции, на которой стоит начальник человека, находящегося в $i$-й строке и $j$-м столбце.

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

В первой строке два целых положительных числа $n, m$.

В следующей строке содержится $\min(n,m)$ чисел, где $i$-е число представляет $a_{i-1}$.

Далее следуют $n$ строк, в каждой из которых по $m$ целых положительных чисел, где $j$-е число в $i$-й строке обозначает $h_{i,j}$.

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

Матрица размером $n\times m$, смысл которой описан в условии задачи.

Примеры

Пример 1

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

3 3
0 1 0
1 2 3
4 5 6
7 8 9

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

0 0 0
0 9 0
0 0 1

Пример 2

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

12 8
1 0 0 1 0 1 0 1
87 19 88 4 25 38 1 69
74 81 15 22 89 65 94 23
8 85 70 40 26 92 79 24
61 76 73 63 39 28 84 35
18 37 54 13 64 52 44 51
6 29 42 86 11 32 5 3
36 34 82 9 59 43 67 12
30 27 93 56 49 20 14 50
55 80 83 33 7 31 41 91
75 2 48 10 17 21 45 78
53 71 57 46 68 96 77 66
72 58 16 47 60 95 90 62

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

0 0 0 2 0 0 96 0
0 0 0 0 4 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
2 0 0 0 0 0 0 1
0 0 0 0 0 0 0 0
0 0 4 0 0 0 0 0
0 0 0 0 0 0 0 0
0 96 0 0 0 0 0 0
0 0 0 0 0 0 0 0
0 0 96 0 0 0 0 96

Подзадачи

Подзадача $1$: $10$ баллов, $1\leq n\times m\leq 10000$.

Подзадача $2$: $10$ баллов, $1\leq n\times m\leq 1000000$.

Подзадача $3$: $10$ баллов, данные сгенерированы случайно: $a_i$ выбирается случайно из $0$ и $1$, массив $h$ является случайной перестановкой.

Подзадача $4$: $20$ баллов, гарантируется, что $\forall i, a_i = 0$.

Подзадача $5$: $30$ баллов, $1\leq n\times m \leq 3000000$.

Подзадача $6$: $20$ баллов, без дополнительных ограничений.

Для $100\%$ данных $1\leq n\times m\leq 4000000$.

Объем входных и выходных данных в этой задаче довольно велик, рекомендуется использовать быстрые методы ввода-вывода.

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.