58求助!
查看原帖
58求助!
1348824
yzq120806楼主2024/8/15 16:57

记录

代码:

#include<bits/stdc++.h>
using namespace std;
bool e[12000][12000];
bool b[12000];
int n, i, j;
int in[12000];
queue<int> q;
int main() {
	cin >> n;
	for (i = 1; i <= n; i++) {
		while (1) {
			cin >> j;
			if (j == 0) {
				break;
			}
			e[i][j] = true;
			in[j]++;
		}
	}
	for (i = 1; i <= n; i++) {
		if (in[i] == 0) {
			q.push(i);
		}
	}
	while (!q.empty()) {
		cout << q.front() << " ";
		b[q.front()] = true;
		for (i = 1; i <= n; i++) {
			if (e[q.front()][i] == true) {
				in[i]--;
				e[q.front()][i] = false;
			}
		}
		for (i = 1; i <= n; i++) {
			if (in[i] == 0 && b[i] == false) {
				q.push(i);
			}
		}
		q.pop();
	}
	return 0;
}
2024/8/15 16:57
加载中...