P15110 Silent End
题目背景
机房里有一些神在讨论代码部队。grg 发现自己太菜参与不进去,所以只能听他们高谈阔论。
题目描述
grg 听到了其中 $m$ 条评价。第 $i$ 条形式为 $(u_i,v_i,w_i)$,分别为评价者,被评价者以及预估的 rating。然而这些评价不一定准确。具体地,如果评价者的真实 rating 大于等于被评价者,他会低估被评价者导致 $w$ 比实际 rating 小 $1$,若小于被评价者,他会高估被评价者导致 $w$ 比实际 rating 大 $1$。
因为这群人关系很好,所以**每个人都至少被评价了一次**。
现在 grg 想要你构造一组这些人的 rating,需要满足所有评价。如果不存在,请报告。
输入格式
第一行两个正整数 $n,m$。
接下来 $m$ 行,每行三个非负整数 $u_i,v_i,w_i$,含义如上。
输出格式
若无解,请输出 `NO`。
否则输出 `YES`,再输出一行 $n$ 个整数,代表你构造的这些人的 rating,你需要保证构造的这些这些 rating 处于带符号 32 位整数的范围内,否则随机报错。
说明/提示
**本题采用捆绑测试。**
$\texttt{Subtask 1(30pts)}:$ $n \leq 20$,$m \leq 100$。
$\texttt{Subtask 2(70pts)}:$ 无额外限制。
对于所有的数据,满足 $1\le n \leq 5 \cdot 10^5$,$n\le m \leq 10^6$,$0 \leq w_i \leq 10^9$。
**保证每个人都至少被评价了一次。**