Pagini recente » Cod sursa (job #558684) | Cod sursa (job #2231904) | Cod sursa (job #2883903) | Cod sursa (job #150105) | Cod sursa (job #560951)
Cod sursa(job #560951)
#include <stdio.h>
#include <vector>
using namespace std;
#define nmax 50005
vector<int> G[nmax];
int ord[nmax], viz[nmax];
int N, Ncnt;
void citire ()
{
int i, M, x, y;
scanf("%d%d", &N, &M);
for (i = 1; i <= M; ++i)
{
scanf("%d%d", &x, &y);
G[x].push_back(y);
}
Ncnt = N;
}
void dfs( int nod )
{
int i, urm;
viz[nod] = 1;
for (i = 0; i < G[nod].size (); ++i)
{
urm = G[nod][i];
if ( !viz[urm] ) dfs(urm);
}
ord[Ncnt--] = nod;
}
void solve ()
{
int i;
for (i = 1; i <= N; ++i)
if ( !viz[i] ) dfs(i);
for (i = 1; i <= N; ++i) printf("%d ", ord[i]);
}
int main ()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
citire ();
solve ();
return 0;
}