Pagini recente » Cod sursa (job #2159425) | Cod sursa (job #1596736) | Cod sursa (job #2208365) | Cod sursa (job #2583898) | Cod sursa (job #2649451)
#include <bits/stdc++.h>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n, m;
int vf[100001], urm[100001], last[50001], nr;
bitset <50001> son, viz;
int sortTop[50001], stL;
void adauga(int from, int to)
{
vf[++nr] = to;
urm[nr] = last[from];
last[from] = nr;
}
void dfs(int nod)
{
viz[nod] = true;
for(int k = last[nod]; k; k = urm[k])
if(viz[ vf[k] ] == false)
dfs(vf[k]);
sortTop[++stL] = nod;
}
int main()
{
in >> n >> m;
for(int k = 1, i, j; k <= m; k++)
{
in >> i >> j;
adauga(i, j);
son[j] = true;
}
for(int i = 1; i <= n; i++)
if(son[i] == false)
dfs(i);
for(int i = n; i >= 1; i--)
out << sortTop[i] << ' ';
return 0;
}