Pagini recente » Cod sursa (job #219527) | Cod sursa (job #1013875) | Cod sursa (job #1062906) | Cod sursa (job #2743919) | Cod sursa (job #2145191)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int k,viz[50001],n,m,v[50001];
struct nod
{
int inf;
nod *urm;
}*l[50001];
void creare(int x,nod *&p)
{
nod *c=new nod;
c->inf=x;
c->urm=p;
p=c;
}
void adaug()
{
int x,y;
f>>n>>m;
for(int i=1;i<=m;i++)
{
f>>x>>y;
creare(y,l[x]);
}
}
void df(int i)
{
nod *c; viz[i]=1;
for(c=l[i];c;c=c->urm)
if(!viz[c->inf]) df(c->inf);
v[++k]=i;
}
int main()
{
adaug();
for(int i=1;i<=n;i++)
if(!viz[i])df(i);
for(int i=n;i>=1;i--)
g<<v[i]<<" ";
return 0;
}