Pagini recente » Cod sursa (job #1334422) | Cod sursa (job #2750236) | Cod sursa (job #356903) | Cod sursa (job #2627652) | Cod sursa (job #2660346)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n, m;
vector<int> adj[50001];
vector<int> vizitat;
vector<int> ans;
void dfs(int i)
{
vizitat[i] = 1;
for(auto x : adj[i])
if(vizitat[x] == 0)
dfs(x);
ans.push_back(i);
}
void topologicalSort()
{
vizitat.assign(n, 0);
ans.clear();
for(int i = 0; i < n; i++)
if(vizitat[i] == 0)
dfs(i);
reverse(ans.begin(), ans.end());
}
int main() {
f >> n >> m;
for(int i = 0; i < m; i++)
{
int x, y;
f >> x >> y;
adj[x - 1].push_back(y - 1);
adj[y - 1].push_back(x - 1);
}
topologicalSort();
for(auto x : ans)
g << x + 1 << " ";
return 0;
}