#include<iostream> using namespace std; struct node{ int f,l,w; }e[100]; int main() { int n,m,k,i,j; int f[100]; cin>>n; while(n--) { int v1[100]={0}; int v2[100]={0}; cin>>m>>k; for(i=1;i<=k;i++) cin>>e[i].f>>e[i].l>>e[i].w; for(i=1,v1[1]=0;i<=k;i++) if(v1[e[i].l]<v1[e[i].f]+e[i].w)v1[e[i].l]=v1[e[i].f]+e[i].w; v2[m]=v1[m]; for(i=k;i>0;i--) if(v2[e[i].f]<v2[e[i].l]-e[i].w)v2[e[i].f]=v2[e[i].l]-e[i].w; else if(v2[e[i].f]!=0)v2[e[i].f]=v2[e[i].l]-e[i].w; for(i=1,j=0;i<=k;i++) if(v1[e[i].f]==v2[e[i].l]-e[i].w)f[j++]=i; for(i=0;i<j-1;i++) cout<<f[i]<<" "; cout<<f[i]<<endl; } //system("pause"); return 0; } http://cie.xtu.edu.cn/exam/index.php/problem/read/id/1013