Pagini recente » Cod sursa (job #1262021) | Cod sursa (job #874818) | Cod sursa (job #1681789) | Cod sursa (job #211253) | Cod sursa (job #2000558)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
const int Nmax=50050;
int n,m,x,ord[Nmax],ok[Nmax],k;
typedef struct nod {
int vf;
nod * next;
} *PNOD, NOD;
PNOD L[Nmax];
void Add( int i, int j)
{
PNOD p = new NOD;
p->vf = j;
p->next = L[i];
L[i] = p;
}
void Read()
{
f>>n>>m;
int x,y;
for ( ; m > 0; m-- )
{
f>>x>>y;;
Add(x,y);
}
}
void DFS(int nod)
{
ok[nod] = 1;
for ( PNOD p = L[nod]; p; p = p->next )
if ( ok[p->vf] == 0 )
DFS( p->vf );
ok[nod] = 2;
k++;
ord[k]=nod;
}
void STop()
{
for(int i=1; i<=n; i++)
if(ok[i]==0) DFS(i);
}
int main()
{
Read();
STop();
for(int i=k; i>0; i--)
g<<ord[i]<<' ';
}