topsort

发布时间 2023-03-28 15:48:15作者: lfyszy
int q[N], in[N];
void top_sort()
{
	int hh = 0, tt = -1;
	for(int i = 1; i <= n; i ++) if(!in[i]) q[++ tt] = i;
	while(hh <= tt)
	{
	    int t = q[hh ++];
	    for(int i = h[t]; ~i; i = ne[i])
	        if(!--in[e[i]])
    	        q[++ tt] = e[i];
	}
	if(tt == n - 1) for(int i = 0; i <= tt; i ++) cout << q[i] << " ";
	else cout << "-1\n";
}