QOJ.ac

QOJ

実行時間制限: 2 s メモリ制限: 64 MB 満点: 20

#23765. 최악의 기자

統計

당신은 JOI 신문사의 기자이며, 스포츠 기사를 담당하고 있다.

어제까지 크로아티아에서는 $n$개의 축구팀에 의한 풀리그전이 열렸다. 대회 실행위원회는 경기 결과와 규정에 근거하여 각 팀에 $1$위부터 $n$위까지의 순위를 매긴 것 같다. 당신에게는 일부 경기의 승패와 함께 다음 정보가 전달되었다.

  • 정보 $1$: 무승부인 경기는 없었다.
  • 정보 $2$: 모든 팀에 서로 다른 순위가 매겨졌다.
  • 정보 $3$: 모든 $1 \le a < b \le n$에 대하여, $a$위인 팀과 $b$위인 팀의 경기에서 반드시 $a$위인 팀이 승리했다.

당신은 기사를 작성하기 위해 일부 경기의 승패와 전달받은 정보 $1$~$3$을 바탕으로 순위표를 추측하기로 했다.

입력으로 일부 경기의 승패가 주어졌을 때, 전달받은 정보에 부합하는 순위표를 $1$개 출력하는 프로그램을 작성하라. 또한 출력한 순위표 이외에 전달받은 정보에 부합하는 순위표가 존재하는지 여부도 판정하라.

여기서 순위표란 $1$위부터 $n$위까지의 순서대로 팀을 나열한 것을 말한다.

예

예 1 (정보에 부합하는 순위표가 $1$개뿐인 경우)

팀의 수가 $4$이고, 각 팀에 $1$부터 $4$까지의 번호가 붙어 있으며, 승패가 다음 표로 주어졌다고 하자.

$i \backslash j$ $1$ $2$ $3$ $4$
$1$ $-$ $\circ$ $\times$ $\times$
$2$ $\times$ $-$ $\times$ $?$
$3$ $\circ$ $\circ$ $-$ $\circ$
$4$ $\circ$ $?$ $\times$ $-$

$i$행 $j$열이 $\circ$일 때는 번호 $i$인 팀과 번호 $j$인 팀의 경기에서 번호 $i$인 팀이 승리했음을 의미한다. 또한 $\times$일 때는 번호 $j$인 팀이 승리했음을 의미한다. $?$는 승패가 주어지지 않았음을 의미한다.

이때 전달받은 정보에 부합하는 순위표는 다음 $1$개뿐이다.

  • $1$위: 번호 $3$인 팀
  • $2$위: 번호 $4$인 팀
  • $3$위: 번호 $1$인 팀
  • $4$위: 번호 $2$인 팀

예 2 (정보에 부합하는 순위표가 여러 개 존재하는 경우)

팀의 수가 $3$이고, 각 팀에 $1$부터 $3$까지의 번호가 붙어 있으며, 승패가 다음 표로 주어졌다고 하자.

$i \backslash j$ $1$ $2$ $3$
$1$ $-$ $\times$ $?$
$2$ $\circ$ $-$ $\circ$
$3$ $?$ $\times$ $-$

이때 전달받은 정보에 부합하는 순위표는 다음 $2$개이다.

  • $1$위: 번호 $2$인 팀, $2$위: 번호 $1$인 팀, $3$위: 번호 $3$인 팀
  • $1$위: 번호 $2$인 팀, $2$위: 번호 $3$인 팀, $3$위: 번호 $1$인 팀

입력

$1$번째 줄에는 축구팀의 수 $n$이 적혀 있다. 각 팀에는 $1$부터 $n$까지의 번호가 붙어 있다.

$2$번째 줄에는 주어진 경기 승패의 개수 $m$이 적혀 있다.

$3$번째 줄부터 $m + 2$번째 줄까지는 경기의 승패를 나타낸다. 각 줄은 공백으로 구분된 $2$개의 정수 $i, j$를 포함하며, 번호 $i$인 팀이 번호 $j$인 팀에게 승리했음을 나타낸다.

$n, m$은 $1 \le n \le 5000$, $1 \le m \le 100000$을 만족한다.

채점에 사용되는 테스트 데이터 중 $30\%$는 $1 \le n \le 7$, $1 \le m \le 15$를 만족한다. 또한 $60\%$는 $1 \le n \le 100$, $1 \le m \le 2000$을 만족한다.

출력

출력은 $n + 1$줄로 이루어진다.

$1$번째 줄부터 $n$번째 줄까지의 $n$줄에는 전달받은 정보에 부합하는 순위표를 출력하라. $i$번째 줄 ($1 \le i \le n$)에 $i$위인 팀의 번호를 출력하라.

$n + 1$번째 줄에는 출력한 순위표 이외에 전달받은 정보에 부합하는 순위표가 존재하는지 여부를 나타내는 정수를 출력하라. 만약 존재하지 않으면 $0$을, 존재하는 경우에는 $1$을 출력하라.

입출력 예

입출력 예 1의 입력

예 $1$에 대응하는 입출력은 다음과 같다.

4
5
1 2
3 1
3 2
3 4
4 1

입출력 예 1의 출력

3
4
1
2
0

입출력 예 2의 입력

예 $2$에 대응하는 입력 데이터는 다음과 같다.

3
2
2 1
2 3

이 입력 데이터에 대하여 다음 $2$가지 출력 데이터를 생각할 수 있다. 어느 쪽을 출력해도 좋다.

입출력 예 2의 출력

2
1
3
1
2
3
1
1

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.