Pagini recente » Cod sursa (job #525363) | Cod sursa (job #423273) | Cod sursa (job #1426230) | Cod sursa (job #1600735) | Cod sursa (job #1808070)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
typedef vector< vector<int> > Graph;
Graph graph;
vector<int> result_stack;
vector<bool> visited;
void dfs(int node) {
if (visited[node])
return;
visited[node] = true;
for (int i = graph[node].size() - 1; i >= 0; i--) {
dfs(graph[node][i]);
}
result_stack.push_back(node);
}
int main()
{
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m;
fin >> n >> m;
for (int i = 0; i <= n; i++) {
graph.push_back(vector<int>());
visited.push_back(false);
}
int v1, v2;
for (int i = 1; i <= m; i++) {
fin >> v1 >> v2;
graph[v1].push_back(v2);
}
for (int i = 1; i <= n; i++) {
dfs(i);
}
for (int i = result_stack.size() - 1; i >= 0; i--) {
fout << result_stack[i] << ' ';
}
return 0;
}