记录
代码:
#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;
}