Pagini recente » Cod sursa (job #876357) | Cod sursa (job #400624) | Cod sursa (job #991082) | Cod sursa (job #1430241) | Cod sursa (job #2203930)
#include <bits/stdc++.h>
#define NMAX 50001
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<vector<int> > graph;
int i,x,y,nrEdges,nrVertexes;
vector<bool> visited;
vector<int> topological_sort;
void dfs(int node)
{
visited[node]=true;
for(const auto& next : graph[node])
if(!visited[next])
dfs(next);
topological_sort.push_back(node);
}
int main()
{
fin>>nrVertexes>>nrEdges;
graph.resize(nrVertexes+1);
visited.resize(nrVertexes+1);
for(i=1;i<=nrEdges;i++)
{
fin>>x>>y;
graph[x].push_back(y);
}
for(i=1;i<=nrVertexes;i++)
if(!visited[i])
dfs(i);
reverse(topological_sort.begin(), topological_sort.end());
for(const auto& it : topological_sort)
fout<<it<<" ";
return 0;
}