Pagini recente » Cod sursa (job #186748) | Cod sursa (job #1929942) | Cod sursa (job #1733165) | Cod sursa (job #2748899) | Cod sursa (job #443714)
Cod sursa(job #443714)
#include <fstream>
#include <vector>
const int NMAX = 50005;
const char* in = "sortaret.in";
const char* out = "sortaret.out";
using namespace std;
vector <int> L[NMAX];
int N, M, grad[NMAX], Q[NMAX];
int main (void)
{
freopen ( in, "r", stdin );
freopen ( out, "w", stdout );
scanf ("%d%d", &N, &M);
int i, X, Y;
vector <int>::iterator it;
for ( ; M; --M)
{
scanf ( "%d%d", &X, &Y );
L[X].push_back ( Y );
grad[Y]++;
}
for (i = 1; i <= N; ++i)
if (!grad[i]) Q[++Q[0]] = i;
for (i = 1; i <= N; ++i)
{
for (it = L[Q[i]].begin(); it != L[Q[i]].end(); ++it )
if ( !(--grad[*it]) ) Q[++Q[0]] = *it;
}
for ( i = 1; i <= N; printf ("%d ", Q[i++] ));
return 0;
}