Pagini recente » Cod sursa (job #1751843) | Cod sursa (job #3224692) | Cod sursa (job #198151) | Cod sursa (job #385444) | Cod sursa (job #1354745)
#include <fstream>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
#define N 50001
struct graf {
int nod;
graf *next;} *A[N];
int n, m, a, b, T[N], f;
bool viz[N];
void add(int a, int b)
{
graf *p = new graf;
p -> nod = b;
p -> next = A[a];
A[a] = p;
}
void citire()
{
in >> n >> m;
for(int i=1;i<=m;i++)
in >> a >> b, add(a, b);
}
void dfs(int i)
{
viz[i] = 1;
T[++f] = i;
for(graf *p=A[i]; p; p = p->next)
if(!viz[p->nod])
dfs(p->nod);
}
void ST()
{
for(int i=1;i<=n;i++)
if(!viz[i])
dfs(i);
}
void afisare()
{
for(int i=1;i<=n;i++)
out << T[i] << " ";
}
int main()
{
citire();
ST();
afisare();
in.close();
out.close();
return 0;
}