Pagini recente » Cod sursa (job #2867466) | Cod sursa (job #1487115) | Cod sursa (job #8427) | Cod sursa (job #2240788) | Cod sursa (job #1620343)
#include <fstream>
#include <list>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, x, y, i;
bool isVisit[50010];
list<int> graf[50010], topoSort;
void doTopoSort(int nod) {
isVisit[nod] = true;
for (list<int>::iterator it = graf[nod].begin() ; it != graf[nod].end() ; it++)
if (!isVisit[*it])
doTopoSort(*it);
topoSort.push_front(nod);
}
int main()
{
fin>>n>>m;
for (i = 1 ; i <= m ; i++) {
fin>>x>>y;
graf[x].push_back(y);
}
for (i = 1 ; i <= n ; i++)
if (!isVisit[i])
doTopoSort(i);
for (list<int>::iterator it = topoSort.begin() ; it != topoSort.end() ; it++)
fout<<*it<<' ';
return 0;
}