RT。
有个人的家族很大,辈分关系很混乱,请你帮整理一下这种关系。
给出每个人的孩子的信息。
输出一个序列,使得每个人的后辈都比那个人后列出。
我的代码:
#include <bits/stdc++.h>
using namespace std;
const int MAXN = 105;
int n;
vector<int> p[MAXN];
queue<int> Q;
int in[MAXN], out[MAXN];
int main() {
cin >> n;
for (int i = 1; i <= n; i++) {
int x;
while (cin >> x) {
if (!x) break;
else p[i].push_back(x);
out[i]++; in[x]++;
}
}
for (int i = 1; i <= n; i++)
if (!in[i]) Q.push(i);
while (!Q.empty()) {
int x = Q.front(); Q.pop();
cout << x << " ";
for (int i = 0; i < p[x].size(); i++) {
int y = p[x][i];
if (!--in[y]) Q.push(y);
}
}
return 0;
}
57pts,求助大佬!