QOJ.ac

QOJ

Límite de tiempo: 2 s Límite de memoria: 64 MB Puntuación total: 20

#23765. 最悪の記者

Estadísticas

あなたは 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.