求助!
查看原帖
求助!
1062532
MinLand楼主2024/6/14 13:31
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <cstring>
#include <vector>
#include <queue>
using namespace std;
using ll = long long;
using pll = pair<ll, ll>;


const int N = 115;

vector<int>g[N];
queue<int>q;
int n, deg[N];
void inint() {
	int t;
	cin >> n;
	for (int i = 1; i <= n; i++) {
		while (cin >> t ) {
			if (t == 0)
				break;
			g[i].push_back(t);
			deg[t]++;
		}
	}
}

int main() {
	inint();
	for (int i = 1; i <= n; i++) {
		if (deg[i] == 0) {
			printf("%d ", i);
			q.push(i);
			break;
		}
	}
	while (q.size()) {
		int u = q.front();
		q.pop();
		for (int v : g[u]) {
			deg[v]--;
			if (deg[v] == 0) {
				q.push(v);
				printf("%d ", v);
			}
		}
	}
	return 0;
}
/*
5
0
4 5 1 0
1 0
5 3 0
3 0
*/

2,5,6错的

2024/6/14 13:31
加载中...