Pagini recente » Cod sursa (job #2151666) | Cod sursa (job #423744) | Cod sursa (job #2458495) | Cod sursa (job #674725) | Cod sursa (job #2527853)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
struct nod {int info;nod *urm;};
nod *L[50010];
int n,m,a,b,st[50010],niv;
bool viz[50010];
void add(int x,int y)
{
nod *q;
int ok=0;
q=L[x];
while(q!=NULL&&ok==0)
{
if(q->info==y)
ok=1;
q=q->urm;
}
if(ok==0)
{
q=new nod;
q->info=y;
q->urm=L[x];
L[x]=q;
}
}
void DFS(int k)
{
nod *q;
viz[k]=1;
q=L[k];
while(q!=NULL)
{
if(viz[q->info]==0)
{
///cout<<q->info<<" ";
DFS(q->info);
st[++niv]=q->info;
}
q=q->urm;
}
}
int main()
{
fin>>n>>m;
for(int i=1;i<=n;i++)
{
fin>>a>>b;
add(a,b);
}
for(int i=1;i<=n;i++)
{
if(viz[i]==0)
{
///cout<<i<<endl;
DFS(i);
st[++niv]=i;
}
}
for(int i=niv;i>0;i--)
fout<<st[i]<<" ";
return 0;
}