Cod sursa(job #1399159)
| Utilizator | Data | 24 martie 2015 16:37:50 | |
|---|---|---|---|
| Problema | Sortare topologica | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.66 kb |
#include <bits/stdc++.h>
#define pb push_back
using namespace std;
vector<int>v[50005];
int x,y,sol[50005],cnt,n,m,i,viz[50005];
void df(int nod)
{
for(auto it:v[nod])
if(!viz[it])
{
viz[it]=1;
df(it);
}
sol[++cnt]=nod;
}
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d%d",&n,&m);
for(;m;m--)
{
scanf("%d%d",&x,&y);
v[x].pb(y);
}
for(i=1;i<=n;i++)
if(!viz[i])
{
viz[i]=1;
df(i);
}
for(;n;n--)
printf("%d ",sol[n]);
return 0;
}
