16 pts 求助大佬,赏关
查看原帖
16 pts 求助大佬,赏关
382137
C_Passing_Creeper楼主2023/4/15 11:41
#include <bits/stdc++.h>
using namespace std;
int n,x,y,f[101][101],d[101],a[101],tip;
queue<int>q;
int main(){
	cin>>n;
	for (int i=1;i<=n;i++){
		y=0;
		while (1){
			cin>>x;
			if (x==0){
				if (y==0) q.push(i);
				break;
			}
			else f[i][x]=1,d[x]++;
			y++;
		}
	}
	while (!q.empty()){
		x=q.front();
		q.pop();
		a[++tip]=x;
		for (int i=1;i<=n;i++){
			if (f[i][x]==1){
				f[i][x]=0;
				if (--d[x]==0) q.push(i);
			}
		}
	}
	for (int i=1;i<=tip;i++) cout<<a[i]<<' ';
	return 0;
}

https://www.luogu.com.cn/record/108103498

2023/4/15 11:41
加载中...