题目描述
Bovinia航空公司的航线连接了奶牛居住的N个农场(1<=N<=20000)。如同其他公司一样,所有农场当中的K个被设定为枢纽。
现在Bovinia航空公司提供M条单项航线(1<=M<=20000),第i条航线从ui号农场出发,目的地是第vi号农场,开销为ki美刀。(1<=ki<=10000)
对于每一条航线,ui和vi当中至少有一个是枢纽,两个农场间的航线最多只有1条,没有起点终点相同的航线。
Bessie负责管理Bovinia航空公司的售票服务。不幸的是,
当她离开了几个小时去吃一些美味的干草时,奶牛们发来了
Q(1<=Q<=50000)个单程的假期旅行订单,i号订单希望从ai号农场飞到bi号农场。
Bessie快要被订票的工作压垮了,请你帮帮她计算一下每个订单能否被满足,如果能满足,
计算满足该订单的最小花费。
为了减少输出量,你应当只输出最多可满足的订单数和最小的总花费。
为了减少输出大小,您应该只输出可能的票据请求总数,以及它们的最小总成本。注意,这个数字可能不适合32位整数。
是n个点m条有向边,求两两之间的最短路,要求路径上必须经过编号1∼k的至少一个点
输入格式
第1行:整数N、M、K和Q。
第2..M+1:第i+1行包含ui、vi和di。(1<=ui,vi<=N,ui!=vi)
第M+2..M+K+1行:每一行包含一个集线器的(范围)
第M+K+2..M+K+Q+1行:每行两个数字,表示请求从农场ai到bi的票。(1<=ai,bi<=N,ai!=bi)
输出格式
第1行:整数N、M、K和Q。
第2..M+1行:第i+1行包含ui、vi和di。(1<=ui,vi<=N,ui!=vi)
第M+2..M+K+行:每一行包含一个集线器的(范围)
第M+K+2..M+K+Q+1行:每行两个数字,表示请求从农场ai到bi的票。(1<=ai,bi<=N,ai!=bi)
样例
输入样例
3 3 1 2
1 2 10
2 3 10
2 1 5
2
1 3
3 1
输出样例
1
20