匈牙利有 个城市,编号依次为 到 。
这些城市之间由 条双向道路连接,编号为 至 。对每个 (),第 条道路连接城市 和城市 ,其长度为 ,表示这两个城市之间的交通时间为 个时间单位。每条道路连接两个不同的城市,且每两个城市之间最多由一条道路连接。
两个不同城市 和 之间的一条路径 是一个由不同城市组成的序列 ,满足以下条件:
利用这些道路从任意一个城市到任意一个其他的城市都是有可能的。换言之,任意两个不同城市之间都存在路径。 可以证明两个不同城市之间的路径是唯一的。
一条路径 的长度是这条路径上连接相邻城市的 条道路的长度之和。
在匈牙利,很多人都会在建国日去参加在两个主要城市举行的庆祝活动。当庆祝活动结束时,他们会回家。政府为了防止人群干扰当地人,所以决定在特定时刻封锁城市。每个城市被政府分配一个非负的封锁时刻。政府决定所有城市的封锁时刻总和不得超过 。具体来说,对每个 (), 分配给城市 的封锁时刻是一个非负整数 。所有 之和不超过 。
考虑一个城市 和某个封锁时刻的分配方案, 我们说城市 是从城市 可达的当且仅当以下两种情况中的任意一种情况成立。
情况 1:。
情况 2:这两个城市之间的路径 ( 且 )满足以下条件:
- 路径 的长度最多为 ,并且
- 路径 的长度最多为 ,并且
- 路径 的长度最长为 。
今年,两个主要的庆祝地点位于城市 和 。 对于每一个封锁时刻的分配方案,可以定义一个便利分数,其定义为下面两个数字之和:
- 从城市 可达的城市个数。
- 从城市 可达的城市个数。
注意如果一个城市既能从城市 可达也能从城市 可达,那么它在计算便利分数时计算两次。
你的任务是计算能被某个封锁时刻分配方案实现的最大便利分数。