Pagini recente » Cod sursa (job #935789) | Cod sursa (job #2301558) | Cod sursa (job #342591) | Cod sursa (job #743205) | Cod sursa (job #2377180)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m;
struct Muchii{int x,y,k;}v[100001];
int st[50001],in,sf;
void Citire()
{
f>>n>>m;
for(int i=1;i<=m;i++)
f>>v[i].x>>v[i].y;
}
void Aplica(int a, int b,int j)
{
st[++sf]=b;
v[j].k=1;
for(int i=1;i<=m;i++)
if(v[i].k==0 && v[i].x==b)
Aplica(v[i].x,v[i].y,i);
}
void Gen()
{
in=1; sf=1;
st[in]=v[1].x;
while(in<=sf)
{
for(int i=1;i<=m;i++)
if(v[i].x==st[in] && v[i].k==0)
{
Aplica(v[i].x,v[i].y,i);
}
in++;
}
}
/*void Gen()
{
int r1,r2,in=1,sf=2;
st[in]=v[1].x;
st[sf]=v[1].y;
v[1].k=1;
r1=st[1];
r2=st[2];
while(in<=sf)
{
if(r2!=0)
{
int ok=1;
while(ok==1)
{
for(int i=1; ok==1 && i<=m;i++)
if(v[i].k==0 && v[i].x==r2)
{
v[i].k==1;
r1=v[i].y;
ok=0;
st[++sf]=v[i].y;
}
if(ok==1)
ok=0;
}
r2=0;
}
if(r2==0)
{int ok=1;
for(int i=1; ok==1 && i<=m;i++)
if(v[i].k==0 && v[i].x==r1)
{g<<v[i].y<<" ";
st[++sf]=v[i].y;
r2=v[i].y;
ok=0;
v[i].k=1;
}
if(ok==1)
{
in++;
r1=st[in];
}
}
else
r1=st[++in];
}
}
*/
int main()
{
Citire();
Gen();
g<<endl;
for(int i=1;i<=n;i++)
g<<st[i]<<" ";
return 0;
}