Pagini recente » Cod sursa (job #1072465) | Cod sursa (job #1730861) | Cod sursa (job #517272) | Cod sursa (job #447926) | Cod sursa (job #1235198)
#include <cstdio>
#include <vector>
using namespace std;
const int DIMN=50010;
int n,m,k,sol[DIMN],color[DIMN];
vector<int> adj[DIMN];
void addEdge(int v,int w)
{
adj[v].push_back(w);
}
void DFSutil(int v,int *color)
{
color[v]=1;
vector<int>::iterator it;
for(it=adj[v].begin();it!=adj[v].end();++it)
if(color[*it]==0)
DFSutil(*it,color);
sol[++k]=v;
}
void DFS()
{
for(int i=1;i<=n;++i)
color[i]=0;
for(int i=1;i<=n;++i)
if(color[i]==0)
DFSutil(i,color);
}
int main()
{
int a,b;
k=0;
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i=1;i<=m;i++)
{
scanf("%d %d",&a,&b);
addEdge(a,b);
}
DFS();
for(int i=k;i>0;--i)
printf("%d ",sol[i]);
return 0;
}