Dynamic Shortest Path
题号:NC245487
时间限制:C/C++/Rust/Pascal 10秒,其他语言20秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

有一张 n 个点 m 条边的有向带权图,你需要回答如下的 q 个问题:
1. 1 v 询问以 1 为起点到 v 的最短路
2.  对于 的边的边权增加 1

输入描述:

第一行三个整数
接下来m行每行三个整数 , 表示第i条边是连接a_i,b_i且边权为c_i的。
接下来q行每行以一个opt开始描述一次询问。对于第2类询问,保证所有的l_1,l_2,...,l_c互不相同。
对于所有的第2类询问涉及的边的数量总和不超过

输出描述:

对于每一个第1类操作,输出一行一个整数表示最短路。如果最短路不存在,请输出-1。
示例1

输入

复制
3 2 9
1 2 0
2 3 0
2 1 2
1 3
1 2
2 1 1
1 3
1 2
2 2 1 2
1 3
1 2

输出

复制
1
0
2
1
4
2
示例2

输入

复制
5 4 9
2 3 1
2 4 1
3 4 1
1 2 0
1 5
1 4
2 1 2
2 1 2
1 4
2 2 1 3
1 4
2 1 4
1 4

输出

复制
-1
1
2
3
4