帮忙看看代码哪些地方可以优化
#include<bits/stdc++.h>
using namespace std;
vector<int> g[5600006];
int vis[5600006];
int n,m,x,y;
void dfs(int u,int v){
cout<<u<<" ";
vis[u]=1;
if(v==n) return;
for(int i=0;i<g[u].size();i++){
int k=g[u][i];
if(!vis[k]) dfs(k,v+1);
}
}
queue<int> que;
void bfs(int q){
vis[q]=1;
que.push(q);
while(!que.empty()){
int w=que.front();
que.pop();
cout<<w<<" ";
for(int i=0;i<g[w].size();i++){
int h=g[w][i];
if(!vis[h]){
vis[h]=1;
que.push(h);
}
}
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>x>>y;
g[x].push_back(y);
}
for(int i=1;i<=n;i++){
sort(g[i].begin(),g[i].end());
}
dfs(1,0);
cout<<endl;
memset(vis,0,sizeof(vis));
bfs(1);
return 0;
}