#3665. 解决难题
解决难题
Description
陶陶是信息社团唯一的女孩,最近他们在进行省队选拔的训练。教练给他们出了一道最短路问题的题目。
给定一个带权的有向图 $G$ 。对于图 $G$ 有以下两个操作:
* 在图中标记一个点。
* 仅通过标记的点找到两个点之间的最短路径。
陶陶第一次面对这样的问题,她有些不会并且非常无助。此时,社团的明明决定帮助陶陶解决这个问题。在明明的帮助下,陶陶立即解决了这个问题,非常欣赏明明。从那以后,每当陶陶遇到问题时,她总是打电话和明明一起解决问题。当然,明明很高兴为陶陶提供帮助。最后,众所周知,明明和陶陶成为编程爱好者。
请问您也能帮她解决这个最短路径问题吗?
Input Format
输入第一行包含三个整数 $N$,$M$和$Q$ ($N≤300 , M≤100000 , Q≤100000$),其中 $N$是给定图中点的数量,$M$为边的数量,$Q$表示操作数,所有顶点的数字分别为 $0 ,1 ,2 ,\cdots, N-1$ .最开始,所有顶点均未标记。
接下来的 $M$ 条边,每条边均用三个整数($x,y,c$)来描述边:起点 $x$ 和终点 $y$ 的权值为 $c$ 。
接下来的 $Q$ 行每行都描述一个操作,其中操作0 x
表示标记了点 x,操作1 x y
仅通过标记的顶点找到 $x$ 和 $y$ 之间的最短路径。
Output Format
对于操作0 x
,如果已经标记了点 $x$,则输出“ ERROR! At point x”。
对于操作1 x y
,如果未标记点 x 或点 y,则输出“ERROR! At path x to y”;如果无法通过标记点从 $x$到达 $y$,则输出“No such path”;否则,输出最短路径的长度。
5 10 10
1 2 6335
0 4 5725
3 3 6963
4 0 8146
1 2 9962
1 0 1943
2 1 2392
4 2 154
2 2 7422
1 3 9896
0 1
0 3
0 2
0 4
0 4
0 1
1 3 3
1 1 1
0 3
0 4
0 0 0
ERROR! At point 4
ERROR! At point 1
0
0
ERROR! At point 3
ERROR! At point 4