RT,对着代码盯了1小时了,还是错qwq
#include<iostream>
#include<vector>
#include<queue>
#include<algorithm>
using namespace std;
typedef long long ll;
vector<ll> v[100001];
ll n,m;
ll use[100001];
void dfs(ll x){
use[x]=1;
cout<<x<<" ";
for(ll i=0;i<v[x].size();i++){
ll y=v[x][i];
if(not use[y])dfs(y);
}
}
void bfs(ll x){
queue<ll> q;
q.push(x);
use[x]=1;
fill(use,use+100001,0);
while(q.size()){
ll tp=q.front();cout<<tp<<" ";
q.pop();
for(ll i=0;i<v[tp].size();i++){
ll y=v[tp][i];
if(not use[y]){
use[y]=1;
q.push(y);
}
}
}
}
int main(){
cin>>n>>m;
for(ll i=0;i<m;i++){
ll x,y;cin>>x>>y;
v[x].push_back(y);
}
for(ll i=1;i<=n;i++)sort(v[i].begin(),v[i].end());
dfs(1);
cout<<endl;
fill(use,use+100001,0);
bfs(1);
return 0;
}