洛谷运行时MLE和RE
#include<bits/stdc++.h>
using namespace std;
vector<vector<int> > g;
int vis[10005];
void DFS(int x){
vis[x] = 1;
cout << x << " ";
bool flag = false;
for (int i = 1;i <= g[x].size();i++) if (g[x][i] && !vis[i]){DFS(i);flag = true;}
if (!flag) return;
}
void BFS(int x){
queue<int> q;
q.push(x);
cout << x << " ";
vis[x] = true;
while (!q.empty()){
int f = q.front();
q.pop();
for (int i = 0;i < g[x].size();i++) if (g[f][i] && !vis[i]){q.push(i);cout << i << " ";vis[i] = true;}
}
}
int main(){
int n,m;
cin >> n >> m;
g.resize(n + 1, vector<int>(n + 1, 0));
for (int i = 0;i < m;i++){
int word,more;
cin >> word >> more;
g[word][more] = 1;
}
DFS(1);
cout << endl;
memset(vis,false,sizeof(vis));
BFS(1);
return 0;
}