Pagini recente » Cod sursa (job #399685) | Cod sursa (job #1365903) | Cod sursa (job #810679) | Cod sursa (job #728306) | Cod sursa (job #1762605)
#include <fstream>
#include <list>
#include <queue>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
#define Nmax 50001
int n ,m;
int color[Nmax];
list<int> noduri[Nmax];
list<int> solutie;
void depthFirst(int i);
int main ()
{
//numarul de noduri si numarul de muchii
int x, y;
fin >> n >> m;
for(int i = 0 ;i < m; i++){
fin >> x >> y;
noduri[x].push_back(y);
}
for(int i = 1 ;i <= n; i++){
if(color[i] == 0)
depthFirst(i);
}
for(list<int>::const_iterator iterator = solutie.begin(); iterator != solutie.end(); ++iterator)
fout << *iterator <<" ";
return 0;
}
void depthFirst(int i)
{
color[i] = 1;
for(list<int>::const_iterator iterator = noduri[i].begin(); iterator != noduri[i].end(); ++iterator)
if(color[(*iterator)] == 0)
depthFirst(*iterator);
solutie.push_back(i);
color[i] = 2;
}