Pagini recente » Cod sursa (job #296589) | Cod sursa (job #288434) | Cod sursa (job #2734749) | Cod sursa (job #2972168) | Cod sursa (job #2448262)
#include <fstream>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int v[100001], n, m;
struct nod{
int vf;
nod* next;
};
nod * vecini[100001];
nod * lista;
void add(int i, int j) {
nod *p = new nod;
p->vf = j;
p->next = vecini[i];
vecini[i] = p;
}
void push(int i) {
nod *p = new nod;
p->vf = i;
p->next = lista;
lista = p;
}
void dfs(int x) {
v[x] = 1;
for(nod *p = vecini[x]; p; p = p->next)
if(!v[p->vf])
dfs(p->vf);
push(x);
}
int main () {
f >> n >> m;
int x, y;
for(int i = 1; i <= m; i++) {
f >> x >> y;
add(x, y);
}
for(int i = 1; i <= n; i++) {
if(!v[i])
dfs(i);
}
for(nod *p = lista; p; p = p->next)
g << p->vf << ' ';
}