Pagini recente » Cod sursa (job #2963815) | Cod sursa (job #1620333) | Cod sursa (job #2739435) | Cod sursa (job #63471) | Cod sursa (job #2924724)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
struct nod {
int info;
nod *next;
} *G[50005];
int n, m, viz[50005], noduri[50005], nr;
void add_first(int g, int h) {
nod *nou=new nod;
nou->info=h;
nou->next=G[g];
G[g]=nou;
}
void citire() {
fin>>n>>m;
int x, y;
for (int i=1; i<=m; i++) {
fin>>x>>y;
add_first(x, y);
}
}
void dfs(int k) {
viz[k]=1;
for (nod *i=G[k]; i; i=i->next)
if (!viz[i->info])
dfs(i->info);
noduri[nr++]=k;
}
void parcurgere() {
for (int i=1; i<=n; i++)
if (!viz[i])
dfs(i);
for (int i=n-1; i>=0; i--)
fout<<noduri[i]<<" ";
}
int main() {
citire();
parcurgere();
return 0;
}