#P16630. [Ukiepc2024]Jabber Network
[Ukiepc2024]Jabber Network
题目描述
Dave 是一位已经退休的计算机科学老教授,但他仍然维护着一个本地社区计算机网络。
每位社区成员都有一台计算机,每台计算机配有三张网卡,其中一些网卡之间通过电缆相连。整个网络保持连通,并且按照长期以来节约资源的传统,所使用的电缆数量保持为使网络连通所需的最小值。
因此,任意时刻网络都是一棵树。
社区成员之间的通信习惯非常稳定。对于某些计算机对,已知它们之间每秒需要传输的数据包数量。
对于编号为 的两台计算机:
- 表示它们之间最短路径经过的电缆数量;
- 表示它们之间每秒传输的数据包数量。
网络的通信压力定义为
未在输入中给出的计算机对可以视为 。
由于网络建成已久,当前连接方式不一定仍然最优。Dave 决定在更换旧电缆的同时逐步优化网络。
对于输入中依次给出的每一条旧电缆,他执行以下操作:
- 拆除这条旧电缆;
- 使用一条新电缆重新连接网络,使得到的网络通信压力尽可能小;
- 若有多种连接方式达到相同的最小通信压力,则选择端点编号字典序最小的一对。
更具体地说,设候选连接的两个端点都按从小到大书写。若 与 产生相同的通信压力,并且
- ,或
- 且 ,
则必须选择 。

上图展示了样例中第一次重连操作:先拆除一条旧电缆,再加入一条新电缆。
由于每台计算机只有三张网卡,Dave 不能任意连接两台计算机。如果某台计算机当前已经连接了三台其他计算机,就不能再为它增加一条电缆。
可以证明,每一步总能找到一种合法连接;例如,重新连接刚刚被拆开的那两个端点一定是可行的。
请为每一次旧电缆更换操作求出 Dave 应加入的新电缆。
输入格式
第一行包含一个整数 ,表示计算机数量。
接下来 行,第 行包含两个整数 ,表示旧电缆 连接的两台计算机。旧电缆将严格按照输入顺序被拆除和替换。
初始网络保证连通,且每台计算机的度数不超过 。
随后一行包含一个整数 ,表示存在非零通信需求的计算机对数量。
接下来 行,每行包含三个整数 ,表示计算机 与 之间每秒传输 个数据包。
输出格式
输出 行。
第 行包含两个整数 ,其中 ,表示在第 次操作中加入的新电缆连接计算机 和 。
由于题目规定了最小通信压力和字典序最小的决策规则,正确输出唯一。
数据范围
- ;
- ;
- 初始网络是一棵树;
- 初始时每个顶点的度数不超过 ;
- ;
- ;
- 。
样例
输入
4
1 2
2 3
3 4
6
1 2 1
1 3 10
1 4 1
2 3 10
2 4 1
3 4 10
输出
1 3
2 3
3 4