题目描述
给定一棵包含 n 个结点的树 G 和一个整数 E。
你需要构造树 G 中每条边的整数边权 wi,满足:
- 1≤wi≤109;
- 均匀随机选择一个结点 u,v=1maxndis(u,v) 的期望对 998244353 取模的值等于 E;
或报告无解。
其中,dis(u,v) 表示结点 u,v 之间简单路径上的边权和。
如果你不知道如何计算期望对 998244353 取模的结果,请移步 P2613 【模板】有理数取余。
输入格式
第一行输入一个整数 n。
接下来 n−1 行,每行输入两个正整数 ui,vi,表示树 G 中结点 ui,vi 之间存在一条边 (ui,vi)。
接下来一行,输入一个整数 E。
输出格式
输出一行或 n−1 行:
- 若有解,则输出 n−1 行,每行输出一个整数 wi,表示你构造的树 G 中边 (ui,vi) 的边权;
- 若无解,则输出一行,包含一个整数 −1。
所有满足要求的输出均可通过。
提示
「样例解释 #1」
所有 dis 的值如下表,其中标红的是行首结点的 dis 的最大值。
dis |
1 |
2 |
3 |
1 |
0 |
1 |
3 |
2 |
1 |
0 |
2 |
3 |
3 |
2 |
0 |
可以验证,E=33+2+3=38≡665496238(mod998244353)。
「数据范围」
对于所有数据,2≤n≤105,1≤ui,vi≤n,0≤E<998244353,保证输入数据形成一棵树。
只有你通过本题的所有测试点,你才能获得本题的分数。