P11352 [NOISG 2024 Finals] Coin

题目描述

Benson 有 $n$ 枚不同重量的硬币和一个天平。每次将硬币 $x$ 和 $y$ 放在天平上,可以知道它们的相对重量,即 $x$ 是否比 $y$ 更重。 硬币 $x$ 的排名(rank)定义为不比它更重的硬币数量(包括自身)。例如,最轻的硬币的排名是 $1$,次轻的是 $2$,最重的是 $n$。 对于每个硬币,当且仅当基于已有的称量结果可以唯一确定其排名时,称其排名被“确定”(determined)。 你的任务是帮助 Benson 找出每个硬币首次确定排名的称量序号,或者判断它的排名永远无法确定。

输入格式

- 第一行包含两个用空格分隔的整数 $n$ 和 $m$,表示硬币的数量和称量的次数。 - 接下来的 $m$ 行,每行包含两个整数 $x$ 和 $y$,表示硬币 $x$ 比硬币 $y$ 轻。

输出格式

输出 $n$ 个整数。如果硬币 $i$ 的排名在所有 $m$ 次称量后仍未确定,输出 $-1$。否则,输出首次确定排名的称量序号 $k$($1 \leq k \leq m$)。

说明/提示

【样例解释】 对于样例 #1: - 硬币 $1$ 的排名在第 $3$ 次称量后确定,输出 $3$。 - 硬币 $2$ 的排名在第 $4$ 次称量后确定,输出 $4$。 - 硬币 $3$ 和 $4$ 的排名无法确定,输出 $-1$。 对于样例 #2: - 每个硬币的排名确定的时间点分别是 $8$,$8$,$5$,$5$,$5$ 和 $6$。 【数据范围】 - $2 \leq n \leq 200,000$ - $1 \leq m \leq 800,000$ - $1 \leq x, y \leq n$ - 硬币之间的所有称量关系形成一个有效的偏序。 | 子任务编号 | 分值 | 限制条件 | |:---:|:---:|:---:| | $0$ | $0$ | 样例测试用例 | | $1$ | $6$ | $1 \leq n \leq 7, 1 \leq m \leq 20$ | | $2$ | $16$ | $1 \leq n \leq 100, 1 \leq m \leq 400$ | | $3$ | $10$ | $1 \leq n \leq 1000, 1 \leq m \leq 4000$ | | $4$ | $68$ | 无额外限制 |