Pagini recente » Cod sursa (job #487101) | Cod sursa (job #1112604) | Cod sursa (job #2787986) | Cod sursa (job #252282) | Cod sursa (job #2943183)
#include <fstream>
#include <vector>
#include <stack>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n, m, i, x, y;
vector<int> neighbours[50100];
bool viz[50100];
stack<int> sortaret;
void dfs(int node)
{
viz[node] = true;
for (vector<int>::iterator it = neighbours[node].begin(); it != neighbours[node].end(); advance(it, 1))
{
if (!viz[(*it)]) {
dfs((*it));
}
}
sortaret.push(node);
}
int main()
{
f >> n >> m;
for (i = 1; i <= m; i++)
{
f >> x >> y;
neighbours[x].push_back(y);
}
for (i = 1; i <= n; i++) {
if (!viz[i]) {
dfs(i);
}
}
while (!sortaret.empty()) {
g << sortaret.top() << ' ';
sortaret.pop();
}
f.close();
g.close();
return 0;
}