#ATagc011f. [AGC011F] Train Service Planning
[AGC011F] Train Service Planning
题目描述
在高桥王国中有一条铁路,这条铁路分为 个区间,标号为 ,有 个站台,标号为 ,区间 连接站台 和站台 ,一列火车经过区间 会消耗 的时间,每个区间的铁路要么是单向通行的,要么是双向通行的, 表示区间 是单向通行的,否则它是双向通行的。对于两列相向而行的火车,且它们行驶在一段铁轨上,如果这个铁轨是双向的,那么两列火车可以跨过在这段铁轨穿过对方继续行驶。对于一列停靠在站台的火车,任意一列火车都可以穿过对方继续行驶。
现在 snuke 君想要设计一个火车时间表,即需要对所有车站设定所有列车的到达和离开时间,满足以下约定:
- 所有的火车要么从站台 到站台 ,要么从站台 到站台 ;
- 对任意一列火车,它通过区间 的时间必须为 ;
- 对任意一列终点为站台 的火车,如果它在 时刻到达站台 并在 时刻离开站台 ,那么下一列经过站台 的终点为站台 的火车必须在 时刻到达站台 并在 时刻离开站台 ,同理,上一列经过站台 的终点为站台 的火车必须在 时刻到达站台 并在 时刻离开站台 ,对于终点为站台 的火车也必须如此;
- 在任意时刻不能有两列相向而行的火车在单向区间内互相穿过。
现在你要找出一个时间表,使得一列从站台 到站台 的火车和一列从站台 到站台 的火车行驶时间之和最短,观察样例 可以帮助你更好地理解题目。
输入格式
:
输出格式
一行一个整数,表示列车上下行最短的开车时间之和,如果不存在合法方案则输出 。
样例 1
输入
3 10
4 1
3 1
4 1
输出
26
样例 2
输入
1 10
10 1
输出
-1
样例 3
输入
6 4
1 1
1 1
1 1
1 1
1 1
1 1
输出
12
样例 4
输入
20 987654321
129662684 2
162021979 1
458437539 1
319670097 2
202863355 1
112218745 1
348732033 1
323036578 1
382398703 1
55854389 1
283445191 1
151300613 1
693338042 2
191178308 2
386707193 1
204580036 1
335134457 1
122253639 1
824646518 2
902554792 2
输出
14829091348
说明/提示
- 要么是 要么是 。
- 所有输入的数都是整数。
部分分
对于 分的测试数据,所有铁轨都是单向的,也即 。 对于另外 分的测试数据,。
样例解释 1
比如说,在如下的时间表中,答案是 :

在这个时间表中,红线代表的火车在 时刻从站台 出发,在时刻 到达站台 ,在 时刻从站台 出发,在时刻 到达站台 ,以此类推。