Pagini recente » Autentificare | Cod sursa (job #1240252) | Cod sursa (job #2403360) | Cod sursa (job #2571757) | Cod sursa (job #3249616)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
ifstream f ("sortaret.in");
ofstream g ("sortaret.out");
const int NMAX = 50000;
int N, M;
vector<int> G[NMAX+1], L;
bool viz[NMAX+1];
void citire() {
int x, y;
f >> N >> M;
for (int i=1; i<=M; i++) {
f >> x >> y;
G[x].push_back(y);
}
}
void DFS(int nod) {
viz[nod] = 1;
for(const int &x : G[nod])
if(!viz[x])
DFS(x);
L.push_back(nod);
}
void afis() {
for(int i=L.size()-1; i>=0; i--)
g << L[i] << ' ';
g << '\n';
}
int main()
{
citire();
for (int i=1; i<=N; i++)
if(!viz[i])
DFS(i);
afis();
f.close();
g.close();
return 0;
}