QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 2048 MB 満点: 100

#14449. Утопические отношения

統計

В Королевстве Утопия общество стало высокоцифровым, даже в отношениях. Правитель построил массивную систему баз данных из миллиардов GPU для записи отношений своих жителей. Между любыми двумя жителями требуется, чтобы, если они являются знакомыми, они были зарегистрированы в базе данных королевства. Заметьте, что зарегистрированные отношения являются взаимными: если $A$ зарегистрирован как знакомый $B$, то $B$ также зарегистрирован как знакомый $A$.

В последней попытке полностью оцифровать отношения король Аврелий IV предлагает «числовые очки привязанности». Каждому жителю Королевства Утопия дается $10\,000$ очков привязанности. Затем жители обязаны распределить свои очки привязанности между другими жителями, с которыми у них зарегистрированы отношения в базе данных. Например, если $A$ зарегистрирован как знакомый $B$ и $C$, $A$ может распределить $3\,000$ очков привязанности $B$ и $7\,000$ очков привязанности $C$. Если $A$ не зарегистрирован как знакомый $D$, $A$ не может дать $D$ никаких очков привязанности. Жители могут распределять любое целое количество очков привязанности, от $0$ до $10\,000$ включительно.

Король хочет убедиться, что распределение очков является справедливым и равным: если $A$ дает $B$ $x$ очков привязанности, то $B$ также должен дать $A$ те же $x$ очков привязанности. Кроме того, житель должен распределить все свои очки привязанности; сумма всех очков привязанности, которые житель распределяет своим знакомым, должна составлять $10\,000$.

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

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

Первая строка входных данных содержит два целых числа $n$ ($2 \le n \le 1\,000$) и $m$ ($1 \le m \le 5\,000$), где $n$ — количество граждан Утопии, а $m$ — количество зарегистрированных отношений. Граждане пронумерованы от $1$ до $n$.

Каждая из следующих $m$ строк содержит два целых числа $a$ и $b$ ($1 \le a, b \le n, a \neq b$), описывающих зарегистрированное отношение между гражданами $a$ и $b$. Все отношения уникальны. Если $a$ $b$ встречается во входных данных, то $a$ является знакомым $b$, а $b$ является знакомым $a$, поэтому $b$ $a$ не будет встречаться во входных данных.

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

Если возможно распределить очки привязанности так, как требует король, выведите $n$ строк, каждая из которых содержит $n$ целых чисел. Число в позиции $(i, j)$ — это количество очков привязанности между гражданами $i$ и $j$. Заметьте, что на диагонали, где $i = j$, количество очков привязанности равно $0$.

Если распределить очки привязанности так, как требует король, невозможно, просто выведите $-1$.

Примеры

Пример 1

5 6
1 2
1 3
2 3
3 4
3 5
5 4
0 7500 2500 0 0
7500 0 2500 0 0
2500 2500 0 2500 2500
0 0 2500 0 7500
0 0 2500 7500 0

Пример 2

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