SP338 ROADS - Roads
题目描述
题面描述
有标号为 $1 \ldots n$ 的城市与单行道相连。对于每条道路有两个与之相关的参数:道路的长度以及需要支付的费用(用硬币的数量表示)
鲍勃和爱丽丝曾经生活在城市 $1$。在注意到爱丽丝在他们喜欢玩的卡牌游戏中作弊后,鲍勃决定与爱丽丝分手并搬走——去城市 $n$。他希望尽快到达那里——越快越好,然而他现在有些现金短缺。
我们希望帮助鲍勃找到从城市 $1$ 到城市 $n$ 的一条最短路径——但他必须用他现有的钱支付得起。
输入格式
输入的第一行含有一个整数 $t$ 代表测试样例的组数。下面是t组测试样例。
对于每组测试数据,第一行含有一个整数 $K$($0 \le K \le 10000$),代表鲍勃所能支付得起的最大费用。
第二行含有一个整数 $N$($2 \le N \le 100$),代表城市总数。
第三行含有一个整数 $R$($1 \le R \le 10000$),代表道路的总数。
接下来 $R$ 行每行用四个整数 $S$、$D$、$L$、$T$,以单个空格分隔:
$S$ 表示出发点城市标号($1 \le S \le N$);
$D$ 表示目的地城市标号($1 \le D \le N$);
$L$ 是该道路的长度($1 \le L \le 100$);
$T$ 表示经过该道路的费用($0 \le T \le 100$)。
注意不同的道路可能拥有相同的起点和终点。
输出格式
对于每组测试样例,输出单独的一行表示当花费小于等于 $K$ 时最短路径的长度。如果不存在这样的路径,输出 $-1$。