u = 0; u < n; u++) //求出E,L关键活动
{
for(int e = first[u]; e != -1; e = edge[e].next)
{
int v = edge[e].v, id = edge[e].id, w = edge[e].w; //id代表活动的标号
E[id] = Ee[u], L[id] = El[v] - w;
if(E[id] == L[id]) //相等一定是关键活动
{
printf("a%d : %d->%d\n", id, u, v);
}
}
}
}
void read_case()
{
init();
for(int i = 1; i <= m; i++)
{
int u, v, w;
scanf("%d%d%d", &u, &v, &w);
read_graph(u, v, w, i); //read_graph
outd[u]++, ind[v]++;
}
}
int main()
{
while(~scanf("%d%d", &n, &m))
{
read_case();
printf("\nThe Critical activities are:\n");
CriticalPath();
}
return 0;
}
/*
input :
9 11
0 1 6
0 2 4
0 3 5
1 4 1
2 4 5
3 5 2
4 6 9
4 7 7
5 7 4
6 8 2
7 8 4
*/
/*
output:
a2 : 0->2 //a1 : 0->1
a5 : 2->4 //a4 : 1->4
a8 : 4->7
a7 : 4->6
a10 : 6->8
a11 : 7->8
*/