Pagini recente » Cod sursa (job #1960609) | Istoria paginii utilizator/cristinacismaru | Profil Rimoveczdany | Cod sursa (job #2645393) | Cod sursa (job #2231734)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int N, M;
vector<bool> viz(50001);
vector<vector<int>> adj(50001);
vector<int> topsort;
void dfs(int node) {
viz[node] = true;
for (int i = 0; i < adj[node].size(); ++i) {
if (viz[adj[node][i]] == false) {
dfs(adj[node][i]);
}
}
topsort.push_back(node);
}
int main() {
int x, y;
fin >> N >> M;
for (int i = 1; i <= N; ++i) {
viz[i] = false;
adj[i].clear();
}
for (int i = 1; i <= M; ++i) {
fin >> x >> y;
adj[x].push_back(y);
}
for (int i = 1; i <= N; ++i) {
if (viz[i] == false) {
dfs(i);
}
}
for (int i = N - 1; i >= 0; --i) {
fout << topsort[i] << ' ';
}
}