QOJ.ac

QOJ

時間限制: 2 s 記憶體限制: 256 MB 總分: 100

#896. Лошади

统计

Большой Конь — бог лошадей. У него есть $n$ различных видов лошадей. Поскольку его зрение не очень хорошее, он не может различить лошадей одного вида.

Теперь он хочет выстроить $m$ лошадей в очередь. Но лошади настолько активны, что могут менять свои позиции по желанию. Однако Большой Конь заметил, что меняться местами могут только две соседние лошади, и это может произойти только в том случае, если эти два вида лошадей являются «друзьями». Поскольку лошади могут менять свои позиции в любое время, Большой Конь считает две очереди эквивалентными тогда и только тогда, когда одну можно получить из другой за конечное число перестановок.

Теперь у Большого Коня есть очередь $a = (a_1, \dots, a_m)$ из лошадей. Он хочет добавить несколько других лошадей слева от очереди. Однако Большой Конь не отличает лево от право. Поэтому он хочет добавить очередь $b = (b_1, \dots, b_k)$ такую, что $b$ коммутирует с $a$: другими словами, $b_1, \dots, b_k, a_1, \dots, a_m$ эквивалентна $a_1, \dots, a_m, b_1, \dots, b_k$. Однако количество таких $b$ может быть слишком большим. Большого Коня интересуют только «минимальные» такие очереди $b$. В частности, его интересуют такие $b$, что:

  • $b$ коммутирует с $a$,
  • $b$ не эквивалентна $c_1, \dots, c_{k'}, d_1, \dots, d_{k''}$, где $c$ коммутирует с $a$ и $d$ коммутирует с $a$,
  • $b$ лексикографически наименьшая среди всех эквивалентных ей очередей.

Он выяснил, что существует не более $n$ минимальных очередей. Он просит вас помочь ему найти их.

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

В первой строке содержится целое число $n$ ($1 \le n \le 200$). Далее следуют $n - 1$ строк. В $i$-й из этих строк содержится $n - i$ целых чисел. $j$-е число в $i$-й строке равно 1, если лошадь вида $i$ может меняться местами с лошадью вида $i + j$, и 0 в противном случае. В следующей строке содержится целое число $m$ ($1 \le m \le 300\,000$). В последней строке содержатся $m$ целых чисел $a_1, \dots, a_m$: виды лошадей в очереди ($1 \le a_i \le n$).

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

Выведите минимальные очереди, по одной в строке. Поскольку очередь может быть слишком длинной, для минимальной очереди $b$ вам нужно вывести только значение хеша $b_1 + b_2 \cdot (n + 1) + \dots + b_k \cdot (n + 1)^{(k-1)}$ по модулю $998\,244\,353$. Вы должны вывести минимальные очереди в лексикографическом порядке (упорядочите их перед вычислением хеша).

Примеры

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

3
1 1
0
5
2 1 3 2 3

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

1
14

Примечание

Две минимальные очереди в примере — это $(1)$ и $(2, 3)$.

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.