Pagini recente » Cod sursa (job #1485840) | Cod sursa (job #40302) | Cod sursa (job #2686626) | Cod sursa (job #1145184) | Cod sursa (job #1996532)
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
vector <int> v[50003];
list <int> sol;
int N,M,x,y;
bool viz[50003];
void DF(int xp)
{
viz[xp] = true;
for( vector<int>::iterator it = v[xp].begin() ; it != v[xp].end() ; it++)
if( viz[*it] == false )
DF(*it);
sol.push_front(xp);
}
void SortareTopologica()
{
for(int i = 1 ; i <= N ; i++)
if( viz[i] == false )
DF(i);
}
int main()
{
f>>N>>M;
for(int i = 1 ; i <= M ; i++)
{
f>>x>>y;
v[x].push_back(y);
}
SortareTopologica();
for( list<int>::iterator it = sol.begin() ; it != sol.end() ; it++)
g<<*it<<' ';
return 0;
}