CF739D Recover a functional graph
题目描述
函数图是一种有向图,其中所有顶点的出度都等于 $1$。自环是允许的。
函数图中的某些顶点处于环上。其他顶点经过有限步数沿边走动后也可以到达环(本题仅考虑有限大小的函数图)。
现在我们要为每个顶点计算两个值。$precycle_{i}$ 表示从 $i$ 到某个环上的顶点需要经过的边数(如果 $i$ 本身处于环上,那么为 $0$);$cycle_{i}$ 表示 $i$ 最终到达的那个环的长度。
现在给你一张函数图的这两个数值信息,对于每个顶点你都知道 $precycle_{i}$ 和 $cycle_{i}$ 的值,但有些位置可能是一个问号,表示该值未知。
请构造任意一张满足要求的函数图,或者判断根本不存在这样的图。
输入格式
第一行包含一个整数 $n$($1\leq n\leq 300$),表示图中的顶点数。
接下来的 $n$ 行中,每行包含两个整数——$precycle_{i}$($0\leq precycle_{i}\leq n-1$)和 $cycle_{i}$($1\leq cycle_{i}\leq n$)。其中某些数字可能用问号代替,表示对应数值未知。
输出格式
如果无解,输出 $-1$。
否则,输出 $n$ 个整数,第 $i$ 个数表示第 $i$ 个顶点有一条边指向哪个顶点。
顶点编号顺序与输入一致。
如果有多组解,输出任意一组即可。
说明/提示
由 ChatGPT 5 翻译