#include<bits/stdc++.h>
using namespace std;
inline int read(){
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-48;ch=getchar();}
return x*f;
}
bool p[1000005];//标记是否访问过
struct st{
int x,y;
}a[1000005];
vector<int>e[1000005];
int n,m;
int q[1000005];
bool cmp(st x,st y){
if(x.y<y.y)return 1;
return 0;
}
void dfs(int s){
cout<<s<<" ";
for(int i=0;i<e[s].size();i++){
if(p[e[s][i]])continue;
p[e[s][i]]=1;dfs(e[s][i]);
}
}
//-------------------------------------------------------------//这部分的问题
void bfs(){
cout<<endl;memset(p,0,sizeof(p));p[1]=-1;
int h=0,t=1;q[1]=1;
while(h<t){
h++;
for(int i=0;i<e[h].size();i++){
if(!p[e[h][i]]){t++;q[t]=e[h][i];p[e[h][i]]=1;}
}
}
for(int i=1;i<=t;i++)cout<<q[i]<<" ";
}
//--------------------------------------------------------------//这部分的问题
int main()
{
//freopen("word.in","r",stdin);freopen("word.out","w",stdout);
//ios::sync_with_stdio(false);
memset(p,0,sizeof(p));p[1]=-1;
n=read();m=read();
for(int i=1;i<=m;i++){a[i].x=read();a[i].y=read();}
sort(a+1,a+1+m,cmp);
//for(int i=1;i<=m;i++)cout<<a[i].x<<" "<<a[i].y<<endl;
for(int i=1;i<=m;i++)e[a[i].x].push_back(a[i].y);
dfs(1);bfs();
return 0;
}
看过错误信息了,是bfs那部分的问题。但我看不出来。。。