Pagini recente » Cod sursa (job #2015285) | Cod sursa (job #1281252) | Rating Cirje Bogdan (cirje-bogdan) | Cod sursa (job #2521863) | Cod sursa (job #2922117)
#include <bits/stdc++.h>
using namespace std;
void dfs(int k, vector <bool>& viz, vector <int>& topSort, vector <vector <int>>& graf)
{
viz[k] = true;
for(auto it : graf[k])
{
if(!viz[it])
{
dfs(it, viz, topSort, graf);
}
}
topSort.emplace_back(k);
}
int main()
{
#ifndef ONLINE_JUDGE
freopen("input", "r", stdin);
freopen("output", "w", stdout);
#endif
int n, m;
cin >> n >> m;
vector <vector <int>> graf(n + 1, vector <int> ());
vector <int> topSort;
vector <bool> viz(n + 1);
for(int i = 0; i < m; ++i)
{
int x, y;
cin >> x >> y;
graf[x].emplace_back(y);
}
for(int i = 1; i <= n; ++i)
{
if(!viz[i])
{
dfs(i, viz, topSort, graf);
}
}
for(int i = n - 1; i >= 0; --i)
{
cout << topSort[i] << " ";
}
return 0;
}