Pagini recente » Cod sursa (job #732253) | Cod sursa (job #2591618) | Cod sursa (job #2591616) | Cod sursa (job #642813) | Cod sursa (job #3312673)
#include <fstream>
#include <stack>
#include <vector>
#include <bitset>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
int n, m;
vector<vector<int>> graf;
stack<int> st;
bitset<50001> viz;
vector<int> sol;
void dfs(int node) {
st.push(node);
viz[node] = 1;
sol.push_back(node);
while (!st.empty()) {
int current = st.top();
st.pop();
for (int nei : graf[current]) {
if (viz[nei] == 0) {
viz[nei] = 1;
sol.push_back(nei);
st.push(nei);
}
}
}
}
int main() {
cin >> n >> m;
graf.resize(n + 2);
for (int i = 1 ; i <= m ; ++i) {
int src, dest;
cin >> src >> dest;
graf[src].push_back(dest);
}
for (int i = 1 ; i <= n ; ++i) {
if (viz[i] == 0) dfs(i);
}
for (int node : sol) {
cout << node << " ";
}
return 0;
}