Pagini recente » Cod sursa (job #2503661) | Cod sursa (job #1752558) | Cod sursa (job #1806527) | Cod sursa (job #1766453) | Cod sursa (job #626291)
Cod sursa(job #626291)
#include <fstream>
using namespace std;
#define maxN 50001
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
struct lista{int vf; lista *urm;} *graf[maxN], *coada;
int n, m, vizit[maxN];
void parcurgere(int varf);
void citire();
int main()
{
citire();
for(int i = 1; i<=n; i++)
if(vizit[i]==0)
parcurgere(i);
for(lista *t=coada; t!=NULL; t=t->urm)
fout << t->vf << ' ';
fout << '\n';
fin.close();
fout.close();
return 0;
}
void parcurgere(int varf)
{
vizit[varf]=1;
for(lista *t = graf[varf]; t != NULL; t=t->urm)
if(vizit[t->vf]==0)
parcurgere(t->vf);
lista *t=new lista;
t->vf = varf;
t->urm = coada;
coada = t;
}
void citire()
{
fin >> n >> m;
lista *t;
int a, b;
for(int i = 1; i <= m; i++)
{
fin >> a >> b;
t = new lista;
t->vf = b;
t->urm = graf[a];
graf[a] = t;
}
}