[Poi2003]Connections

时间限制:5s      空间限制:162MB

题目描述

Byteotian 基础服务政府准备研发一个计算机程序来帮助他们快速的找出两个城镇之间不同的路径.如果居民总是想找出最短的路径的话还是不难的.但是不幸的是,他们有时候想知道第k短的路径.而且除此之外,路径中自环,重复经过点是允许的. 如果两个城镇之间有4条路径,他们的长度分别是2, 4, 4 and 5, 那么最短路径的长度为2,次长为4,第三长为4,第四长的长度为5.


输入格式

In the first line of the standard input there are two positive integers n and m, separated by a single space, 1 <= 0="" 1="" n="" <="100," they="" are="" the="" number="" of="" towns="" in="" byteotia="" and="" roads="" connecting="" towns,="" respectively.="" numbered="" from="" to="" n.="" each="" m="" successive="" lines="" there="" three="" integers="" separated="" by="" single="" spaces:="" a,="" b="" l,="" a=""> b, 1 <= 0="" 1="" l="" <="500." each="" triple="" describes="" one="" one-way="" road="" of="" length="" enabling="" to="" move="" from="" the="" town="" a="" b.="" for="" two="" towns="" there="" exist="" at="" most="" that="" enables="" in="" given="" direction.="" following="" line="" is="" integer="" q,="" denoting="" number="" queries.="" successive="" q="" lines="" are="" queries="" written,="" per="" line.="" query="" has="" form="" three="" integers="" separated="" by="" single="" spaces:="" c,="" d="" and="" k,="" such="" refers="" k-th="" shortest="" route="" c="" d.="" 输入文件的第一行有两个数n="" m,="" 他们分别代表城镇总数和连接他们的道路总数.="" 城镇编号从1="" 到="" n.="" 接下来m="" 行每行3个整数:="" a,="" b="" 和="" l,=""> b, 1 <= 1="" l="" <="500." 他们代表一条长度为l有向边从a="" 到="" b.="" 不会有两条边有着相同的起点和终点.="" 接下来一行是一个整数q,="" 代表一共有q个询问.="" 接下来q="" 行每行三个数:="" c,="" d="" 和="" k,="" 表示询问城镇c="" 到城镇d的第k短路.="" p="">


输出格式

对于每个询问,输出一行表示询问路径的长度,如果答案不存在,输出-1.


样例输入

5 5
1 2 3
2 3 2
3 2 1
1 3 10
1 4 1
8
1 3 1
1 3 2
1 3 3
1 4 2
2 5 1
2 2 1
2 2 2
1 1 2

样例输出

5
8
10
-1
-1
3
6
-1

提示

没有写明提示


题目来源

没有写明来源

Menuappsclose