QOJ.ac

QOJ

Limite de temps : 3 s Limite de mémoire : 256 MB Points totaux : 100

#1655. 실수

Statistiques

알고리즘 애호가인 견습생 Mike가 지나치게 복잡한 시스템을 다루는 데 어려움을 겪는 것은 그리 놀라운 일이 아닙니다. 불행히도, 이는 현재 그가 인턴으로 근무 중인 회사에서 큰 문제가 되었습니다.

Mike가 맡은 프로젝트는 회사의 '지능형 병렬 컴퓨팅 클러스터'를 다루는 것입니다. 이는 거창한 이름일 뿐, 실제로는 총 $n$개의 작업을 처리하는 단순한 작업 스케줄러입니다. 일부 작업은 다른 작업이 성공적으로 실행된 후에만 실행될 수 있습니다. 이러한 의존 관계는 총 $m$개 존재합니다.

작업 간에는 (직접적이든 간접적이든) 순환 의존성이 없음이 보장됩니다.

실행이 시작되면, 시스템은 모든 의존성을 만족하도록 작업을 실행할 순서를 지능적으로 선택합니다(순서는 실행마다 달라질 수 있습니다). 유효한 순서를 선택한 후, 시스템은 $n$개의 작업을 해당 순서대로 실행하기 시작합니다. 시스템이 작업을 실행하기 시작할 때, 해당 작업의 ID를 로그 파일에 출력합니다.

불행히도 오늘은 Mike가 회사에서 인턴으로 일한 첫날이었고, 그는 그다지 신중하지 못했습니다. 그 결과, 그는 실수로 시스템을 $k$번 병렬로 실행했습니다. 시스템은 불규칙하게 작업을 시작하고 로그 파일에 출력하기 시작했습니다. 이제 로그 파일에는 실행된 모든 작업의 ID가 $n \cdot k$개 포함되어 있습니다. 같은 실행에서 나온 작업 ID들은 실행된 순서대로 출력되었지만, 서로 다른 실행에서 나온 출력들은 임의로 섞여 있을 수 있습니다.

당신의 임무는 로그 파일에 있는 정보를 바탕으로 각 작업이 $k$번의 실행 중 어느 실행에서 수행되었는지 알아내는 것입니다.

입력

첫 번째 줄에는 세 정수 $n, k, m$ ($1 \le n, k \le 500\,000$, $0 \le m \le 250\,000$, $n \cdot k \le 500\,000$)이 주어지며, 이는 시스템의 작업 수, Mike가 트리거한 실행 횟수, 의존성 개수를 나타냅니다.

이어지는 $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$에 대하여)가 주어집니다.

출력

로그 파일에 나타난 각 작업에 해당하는 실행 ID를 나타내는 $n \cdot k$개의 정수 $r_i$ ($1 \le r_i \le k$, 모든 $1 \le i \le n \cdot k$에 대하여)를 한 줄에 출력하십시오. 구체적으로, $r_i$는 로그 파일에 나타난 $i$번째 작업에 해당하는 실행 ID여야 합니다.

여러 해답이 가능한 경우, 그중 아무거나 하나를 출력해도 됩니다. 입력 데이터는 유효하며 항상 해답이 존재함이 보장됩니다.

예제

입력 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.