Pagini recente » Cod sursa (job #3348291) | Monitorul de evaluare | Cod sursa (job #2853749) | Cod sursa (job #306470) | Cod sursa (job #2571015)
#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,x,y,viz[50010],k,st[250010];
void adauga(int i,int j)
{
nod *p=new nod;
p->info=j;
p->urm=L[i];
L[i]=p;
}
void dfs(int i)
{
viz[i]=1;
nod *p=new nod;
p=L[i];
while(p)
{
if(viz[p->info]==0)dfs(p->info);
p=p->urm;
}
st[++k]=i;
// for(int i=1;i<=k;i++)fout<<st[i]<<" ";
// fout<<'\n';
}
int main()
{
fin>>n>>m;
for(int i=1;i<=m;i++)
{
fin>>x>>y;
adauga(x,y);
}
for(int i=1;i<=n;i++)if(viz[i]==0)dfs(i);
for(int i=k;i>=1;i--)fout<<st[i]<<" ";
return 0;
}