QOJ.ac

QOJ

Time Limit: 3 s Memory Limit: 256 MB Total points: 100

#1655. Ошибка

Statistics

Будучи начинающим энтузиастом алгоритмов, Майк, что неудивительно, с трудом справляется со слишком сложными системами. К сожалению, это стало большой проблемой в компании, где он сейчас проходит стажировку.

Проект Майка связан с обслуживанием корпоративного интеллектуального кластера для параллельных вычислений. Это лишь красивое название; на самом деле система представляет собой простой планировщик задач, обрабатывающий в общей сложности $n$ заданий. Некоторые задания могут зависеть от успешного выполнения других заданий, прежде чем они смогут быть запущены. Всего существует $m$ таких зависимостей.

Гарантируется, что между заданиями нет (прямых или косвенных) циклических зависимостей.

Когда запускается выполнение, система интеллектуально выбирает порядок выполнения этих заданий так, чтобы все зависимости были соблюдены (порядок может меняться между разными запусками). Выбрав допустимый порядок, она начинает выполнять каждое из $n$ заданий в этом порядке. Когда система начинает выполнение задания, она записывает идентификатор задания в лог-файл.

К сожалению, сегодня был первый день стажировки Майка, и он был недостаточно осторожен. В результате он случайно запустил систему $k$ раз параллельно. Система начала хаотично запускать задания и записывать их в лог-файл. Теперь лог-файл содержит $n \cdot k$ идентификаторов всех выполненных заданий. Идентификаторы заданий из одного и того же запуска были записаны в порядке их выполнения, но записи из разных запусков могут быть произвольно перемешаны.

Ваша задача — определить, какие задания были выполнены в каждом из $k$ запусков, используя информацию из лог-файла.

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

Первая строка входных данных содержит три целых числа $n, k, m$ ($1 \le n, k \le 500\,000$, $0 \le m \le 250\,000$, $n \cdot k \le 500\,000$), количество заданий в системе, количество запусков, которые инициировал Майк, и количество зависимостей.

Следующие $m$ строк содержат пару целых чисел $a_i, b_i$ ($1 \le a_i, b_i \le n, a_i \neq b_i$ для всех $1 \le i \le m$), описывающих зависимость вида: «задание $a_i$ должно быть выполнено до задания $b_i$».

Наконец, последняя строка содержит $n \cdot k$ целых чисел $c_i$ ($1 \le c_i \le n$ для всех $1 \le i \le n \cdot k$), идентификаторы заданий, которые были записаны в лог-файл, по порядку.

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

Выведите одну строку, состоящую из $n \cdot k$ целых чисел $r_i$ ($1 \le r_i \le k$ для всех $1 \le i \le n \cdot k$), идентификатор запуска, соответствующий каждому из заданий в лог-файле. В частности, $r_i$ должен быть идентификатором запуска, соответствующим $i$-му заданию, как оно представлено в лог-файле.

Если возможно несколько решений, допускается любое из них. Гарантируется, что входные данные корректны и решение всегда существует.

Примеры

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

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

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

1 2 2 1 2 1 3 3 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.