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$ рядків.

У $n$ рядках з $1$-го по $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.