Pagini recente » Borderou de evaluare (job #2016554) | Cod sursa (job #330677) | Borderou de evaluare (job #1551139) | Cod sursa (job #748187) | Cod sursa (job #2603720)
#include <bits/stdc++.h>
#define pb push_back
#define NMAX 50001
using namespace std;
vector<unsigned> v[NMAX];
vector<bool> viz(NMAX);
deque<unsigned> sol;
unsigned N, M;
void dfs(unsigned node)
{
viz[node] = true;
for(unsigned i = 0; i < v[node].size(); ++i)
if(!viz[v[node][i]])
dfs(v[node][i]);
sol.push_front(node);
}
int main(void)
{
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
cin >> N >> M;
for(unsigned i = 1; i <= M; ++i)
{
unsigned a, b;
cin >> a >> b;
if(find(v[a].begin(), v[a].end(), b) == v[a].end())
v[a].pb(b);
}
viz.resize(N + 1);
for(unsigned i = 1; i <= N; ++i)
if(!viz[i])
dfs(i);
for(auto k : sol)
cout << k << ' ';
return 0;
}