Pagini recente » Cod sursa (job #947194) | Cod sursa (job #2333347) | Cod sursa (job #319013) | Cod sursa (job #2342626) | Cod sursa (job #3270899)
#include <bits/stdc++.h>
using namespace std;
vector <int> v[100001];
bool verif[100001];
int st[100001];
int cnt;
void dfs(int nod)
{
verif[nod] = 1;
for(auto y:v[nod])
{
if(!verif[y]) dfs(y); ///mergem recursiv prin nodurile nevizitate
}
st[cnt] = nod;
cnt++;
}
int main()
{
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int N, M;
f >> N >> M;
for (int i = 1; i <= M; i++)
{
int X, Y;
f >> X >> Y;
v[X].push_back(Y);
}
for (int i = 1; i <= N; i++)
{
if(!verif[i]) dfs(i);
}
for (int i = cnt - 1; i >= 0; i--)
{
g << st[i] << " ";
}
return 0;
}