找bug找很久实在找不出
望大佬看看哪错(悬关)
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
vector<int> p[100001];
bool num[100001];
void dfs(int x) {
if(num[x]==1) return ;
cout<<x<<" ";
num[x]=1;
if(p[x].size()==0) return ;
for(int j=0; j<p[x].size(); j++) {
dfs(p[x][j]);
}
}
void bfs(int x) {
if(num[x]==0) cout<<x<<" ";
num[x]=1;
if(p[x].size()==0) return ;
queue<int> tmp;
for(int i=0; i<p[x].size(); i++) {
if(!num[p[x][i]]) {
cout<<p[x][i]<<" ";
num[p[x][i]]=1;
}
tmp.push(p[x][i]);
}
while(!tmp.empty()) {
bfs(tmp.front());
tmp.pop();
}
}
int n,m;
int main() {
cin>>n>>m;
for(int i=1; i<=m; i++) {
int x,y;
cin>>x>>y;
p[x].insert(upper_bound(p[x].begin(),p[x].end(),y),y);
}
dfs(1);
cout<<endl;
memset(num, false, sizeof(num));
bfs(1);
return 0;
}