Pagini recente » Cod sursa (job #2517118) | Cod sursa (job #1284210) | Cod sursa (job #49139) | Cod sursa (job #3200186) | Cod sursa (job #3257522)
#include <bits/stdc++.h>
using namespace std;
#define TITLE "sortaret"
ifstream f (TITLE".in");
ofstream g (TITLE".out");
bitset<50001>Visited;
stack<int> Answer;
void dfs(int Node, vector<vector<int>> &Graph)
{
Visited[Node]=true;
for(auto it : Graph[Node])
if(!Visited[it])
dfs(it,Graph);
Answer.push(Node);
}
int main()
{
int n,m;
f>>n>>m;
vector<vector<int>> Graph(n+1);
for(int i=0; i<m; i++)
{
int a,b;
f>>a>>b;
Graph[a].emplace_back(b);
}
priority_queue<pair<int,int>> PQ;
for(int i=1; i<=n; i++)
PQ.push({-Graph[i].size(),i});
for(; !PQ.empty(); PQ.pop())
if(!Visited[PQ.top().second])
dfs(PQ.top().second,Graph);
for(;!Answer.empty(); Answer.pop())
g<<Answer.top()<<' ';
return 0;
}