Pagini recente » Cod sursa (job #2681038) | Cod sursa (job #1121843) | Cod sursa (job #406430) | Cod sursa (job #1715070) | Cod sursa (job #1804047)
#include <iostream>
#include <fstream>
#include <stack>
#include <vector>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
typedef vector<int> vi;
stack<int> a;
vector<vi> g;
vector<bool> v(0);
int n, m;
void dfs(int i);
int main()
{
fin >> n >> m;
g.resize(n + 1);
v.resize(n + 1);
int x, y;
for (int i = 1; i <= m; ++ i)
{
fin >> x >> y;
g[x].push_back(y);
}
for (int i = 1; i <= n; ++ i)
if (v[i] == 0) dfs(i);
while(!a.empty())
{
fout << a.top() <<' ';
a.pop();
}
return 0;
}
void dfs(int i)
{
v[i] = 1;
for (vector<int> :: iterator it = g[i].begin(); it != g[i].end(); ++ it)
if (v[*it] == 0)
{
dfs(*it);
}
a.push(i);
}