QOJ.ac

QOJ

Time Limit: 2.0 s Memory Limit: 512 MB Total points: 100 Hackable ✓

#9903. 最短路径

Statistics

给定一个 $n$ 个点的有向图,点的编号为 $1 \sim n$,对于任意两个不同的点 $i \neq j$,$i$ 到 $j$ 都有一条边,边权为 $a_{i,j}$。

在接下来 $q$ 天,每天都会有一个节点 $p_i$ 在当天关闭,你需要给出这一天 $s_i$ 在不经过 $p_i$ 的前提下,到达 $t_i$ 的最短路径长度。

Input

第一行两个正整数 $n, q$ ($3 \leq n \leq 300, 1 \leq q \leq 5\times 10^5$) 表示有向图的节点数以及询问个数。

下面 $n$ 行,每行 $n$ 个整数,其中第 $i$ 行第 $j$ 个整数表示 $a_{i, j}$ ($0 \leq a_{i, j} \leq 10^{14}, a_{i, i}=0$)。

下面 $q$ 行,每行三个整数 $s_i, t_i, p_i$ ($1 \leq s_i, t_i, p_i \leq n$, $s_i, t_i, p_i$ 互不相同),表示询问 $s_i$ 在不经过 $p_i$ 的前提下,到达 $t_i$ 的最短路径长度。

Output

一共 $q$ 行,每行一个整数表示答案。

Examples

Input

3 3
0 7 8
14 0 5
8 16 0
3 2 1
1 3 2
2 1 3

Output

16
8
14

Input

5 8
0 15 8 7 8
8 0 8 6 8
8 7 0 14 7
5 7 6 0 14
12 8 7 6 0
4 3 5
4 5 1
5 1 4
4 5 3
1 2 4
2 3 5
3 4 2
3 4 5

Output

6
13
12
13
15
8
13
13

Notes

对于 $30\%$ 的测试点: $n, q \leq 100$。

对于 $50\%$ 的测试点: $q \leq 1000$。

对于所有测试点:$1 \leq s_i, t_i, p_i \leq n \leq 300, 1 \leq q \leq 5\times 10^5, 0 \leq a_{i, j} \leq 10^{14}, \forall 1 \leq i \leq n: a_{i,i}=0$。

Discussions

About Discussions

The discussion section is only for posting: Editorials, General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues. Submitting multiple issues may cause your account to be banned.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.