Pagini recente » Cod sursa (job #2331797) | Cod sursa (job #1074850) | Cod sursa (job #2116994) | Cod sursa (job #1887284) | Cod sursa (job #2634364)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
const int NMAX=1e5;
int N;
vector<int> adj[NMAX+1], topsort;
bool visit[NMAX+1];
void citire() {
int M;
fin>>N>>M;
for(int i=1;i<=M;++i) {
int a, b;
fin>>a>>b;
adj[a].push_back(b);
}
}
void dfs(int v) {
visit[v]=true;
for(auto e:adj[v]) {
if(!visit[e])
dfs(e);
}
topsort.push_back(v);
}
int main() {
citire();
for(int i=1;i<=N;++i) {
if(!visit[i]) {
dfs(i);
}
}
reverse(topsort.begin(), topsort.end());
for(auto e:topsort) {
fout<<e<<' ';
}
fout<<'\n';
return 0;
}