#3763. 解决难题

解决难题

题目描述

陶陶是信息社团唯一的女孩,最近他们在进行省队选拔的训练。教练给他们出了一道最短路问题的题目。

给定一个带权的有向图 GG 。对于图 GG 有以下两个操作:

  • 在图中标记一个点。

  • 仅通过标记的点找到两个点之间的最短路径。

陶陶第一次面对这样的问题,她有些不会并且非常无助。此时,社团的明明决定帮助陶陶解决这个问题。在明明的帮助下,陶陶立即解决了这个问题,非常欣赏明明。从那以后,每当陶陶遇到问题时,她总是打电话和明明一起解决问题。当然,明明很高兴为陶陶提供帮助。最后,众所周知,明明和陶陶成为编程爱好者。

请问您也能帮她解决这个最短路径问题吗?

输入格式

输入第一行包含三个整数 NNMMQQN300,M100000,Q100000N≤300 , M≤100000 , Q≤100000),其中 NN是给定图中点的数量,MM为边的数量,QQ表示操作数,所有顶点的数字分别为 0,1,2,,N10 ,1 ,2 ,\cdots, N-1 .最开始,所有顶点均未标记。

接下来的 MM 条边,每条边均用三个整数(x,y,cx,y,c)来描述边:起点 xx 和终点 yy 的权值为 cc

接下来的 QQ 行每行都描述一个操作,其中操作0 x表示标记了点 x,操作1 x y仅通过标记的顶点找到 xxyy 之间的最短路径。

输出格式

对于操作0 x,如果已经标记了点 xx,则输出“ ERROR! At point x”。

对于操作1 x y,如果未标记点 x 或点 y,则输出“ERROR! At path x to y”;如果无法通过标记点从 xx到达 yy,则输出“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