Pagini recente » Cod sursa (job #858169) | Cod sursa (job #551461) | Cod sursa (job #1207165) | Cod sursa (job #2935156) | Cod sursa (job #419664)
Cod sursa(job #419664)
#include <fstream>
#define MAX_N 50001
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
void adaug(int i, int j);
void citeste_graf();
void DF(int nod);
struct lista
{
int nod;
lista *urm;
} *G[MAX_N];
int N, M, ST[MAX_N], nst, U[MAX_N];
void adaug(int i, int j)
{
lista *p;
p = new lista;
p -> nod = j;
p -> urm = G[i];
G[i] = p;
}
void citeste_graf()
{
int i, j;
f >> N >> M;
for(; M>0; M--)
{
f >> i >> j;
adaug(i, j);
adaug(j, i);
}
}
void DF(int nod)
{
lista *p;
U[nod]=1;
for(p = G[nod]; p != NULL; p = p->urm)
if(!U[p->nod])
DF(p->nod);
ST[nst++] = nod;
}
int main()
{
int i;
citeste_graf();
for(i = 1; i <= N; i++)
if(!U[i]) DF(i);
for(i = N-1; i>=0; i--)
g << ST[i] << " ";
}