问题 3302 --修路

3302: 修路

时间限制: 1 Sec  内存限制: 256 MB
提交: 3  解决: 1
[提交][状态][讨论版][命题人:]

题目描述

Alice 有一个n个点m条边的无向图,每条边连接顶点ui,vi ,距离为wi。 Alice 现在计划修k条双向道路,这些路径起点都是1号点,终点是1号点外的其他顶点。假设修了这 些路后,从1号点到其他点的最短距离为disi,小红想知道,最多可以少修几条路,少修哪些路,使得从1号点到其他点的最短距离仍然为disi。 

输入

第一行三个整数n,m,k表示点数,边数,Alice 计划修的路数。 

接下来m行,每行三个整数ui,vi,wi,表示一条边的两个端岸以及权值。 

接下来k行,每行两个整数ti,di,表示计划修从1号点到ti 号点的一条路,长度为di。 

输出

第一行一个整数c表示最多可以少修的路的数量。 

第二行 c个整数表示这些少修的路的编号,编号从小到大输出,如果存在多种方案,请输出任意方案。 

样例输入

样例1
3 2 2
1 2 3
2 3 1
2 2
3 3
样例2
9 10 4
1 2 8
1 3 12
2 4 13
1 5 7
2 6 5
6 7 11
4 8 4
8 9 10
1 4 5
2 3 20
4 2
5 8
6 13
9 1

样例输出

样例1
1
2
样例2
2 3

提示


对于样例1,d1=0,d2=2,d3=3 ,删除第2条边之后距离不变。 



对于20%的数据,满足n<=10,m<=20 。



对于另外10%的数据,满足n<=100,m<=200 。 



对于另外20%的数据,满足 n<=1000,m<=2000。



对于另外20%的数据,满足 n<=100000,m<=200000,k=1。
对于全部数据,满足 1<=n<=100000,1<=m<=200000,0<=k<n,1<=wi,di<=10^9,1<=ui,vi<=n,ui!=vi,ti!=1。 



输入保证图联通,即从1号点出发能到达任何点,而且ti互不相同。 

来源

[提交][状态]