using ll = long long;
vector<int>g[N];
queue<int>q;
int n, deg[N];
这样写是可以AC的
for (int i = 1; i <= n; i++) {
if (deg[i] == 0) {
q.push(i);
}
}
while (q.size()) {
int u = q.front();
q.pop();
printf("%d ", u);
for (int v : g[u]) {
deg[v]--;
if (deg[v] == 0) {
q.push(v);
}
}
}
但是如果改成这样的就会报WA,2,5,6
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);
}
}
}