#CF1149D. 弃置道路

弃置道路

弃置道路

  • 时间限制:5 秒
  • 内存限制:512 MiB

题目描述

Codefortia 由 nn 个居民点和 mm 条双向道路组成。每条道路的通行时间恰好为 aa 秒或 bb 秒,其中 a<ba<b。道路网络连通,且没有自环或重边。

国王要弃置一些道路,使剩余道路构成一棵最小生成树。在所有最小生成树中,他还希望从住所 11 到议会所在地 pp 的通行时间尽可能短。

对于每个 p=1,2,…,np=1,2,\ldots,n,请独立选择最合适的最小生成树,并输出从 11 到 pp 的最小可能树上距离。不同的 pp 可以选择不同的最小生成树。

输入格式

第一行包含四个整数 n,m,a,bn,m,a,b。

接下来 mm 行,每行包含三个整数 u,v,cu,v,c,表示一条连接 uu 与 vv、通行时间为 cc 的无向道路。

保证:

  • 2≤n≤702\le n\le70;
  • n−1≤m≤200n-1\le m\le200;
  • 1≤a<b≤1071\le a<b\le10^7;
  • c∈{a,b}c\in\{a,b\};
  • 图连通,没有自环或重边。

输出格式

输出一行 nn 个整数。第 pp 个整数表示:在所有最小生成树中,从 11 到 pp 的树上距离的最小值。

样例输入 1

5 5 20 25
1 2 25
2 3 25
3 4 20
4 5 20
5 1 20

样例输出 1

0 25 60 40 20

样例输入 2

6 7 13 22
1 2 13
2 3 13
1 4 22
3 4 13
4 5 13
5 6 13
6 1 13

样例输出 2

0 13 26 39 26 13

数据范围

对于所有数据,2≤n≤702\le n\le70,n−1≤m≤200n-1\le m\le200,1≤a<b≤1071\le a<b\le10^7,且每条边权均属于 {a,b}\{a,b\}。

子任务编号 分值 特殊限制
1 20 n≤9n\le9 且 m≤15m\le15
2 40 只保留权值为 aa 的边后,连通块数不超过 1515
3 无特殊限制