Pagini recente » Cod sursa (job #580061) | Cod sursa (job #1213899) | Cod sursa (job #1586216) | Cod sursa (job #192147) | Cod sursa (job #2608488)
#include<cstdio>
#include<vector>
#include<deque>
using namespace std;
FILE*in=fopen("sortaret.in","r");
FILE*out=fopen("sortaret.out","w");
struct nod
{
int n;
bool b;
};
nod no;
vector<nod> v[50002];
deque<int> d;
int n,m,i,x,y,vec;
bool t[50002];
void DFS(int a)
{
t[a]=1;
for(int j=0;j<v[a].size();j++)
{
nod vec=v[a][j];
if(t[vec.n]==0)
{
if(vec.b==0)
{
d.push_back(vec.n);
}
else
{
d.push_front(vec.n);
}
DFS(vec.n);
}
}
}
int main()
{
fscanf(in,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{
fscanf(in,"%d%d",&x,&y);
no.n=y;
no.b=0;
v[x].push_back(no);
no.n=x;
no.b=1;
v[y].push_back(no);
}
for(i=1;i<=n;i++)
{
if(t[i]==0)
{
d.push_back(i);
DFS(i);
}
}
while(!d.empty())
{
fprintf(out,"%d ",d.front());
d.pop_front();
}
}