Pagini recente » Cod sursa (job #2696754) | Cod sursa (job #526688) | Cod sursa (job #1376190) | Cod sursa (job #1739702) | Cod sursa (job #2207467)
#include <bits/stdc++.h>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
vector< vector< int > > G;
vector< bool > viz;
vector< int > grad;
stack< int > s;
void DFS(int nod) {
viz[nod] = true;
for(auto vecin: G[nod]) {
if(!viz[vecin]) {
DFS(vecin);
}
}
s.push(nod);
}
int main() {
ios::sync_with_stdio(false); in.tie(0); out.tie(0);
int n, m; in >> n >> m;
G.resize(n); viz.resize(n, false); grad.resize(n, 0);
for(int i = 1; i <= m; ++i) {
int x, y; in >> x >> y;
--x; --y;
G[x].push_back(y);
grad[y]++;
}
for(int i = 0; i < n; ++i) {
if(grad[i] == 0) {
DFS(i);
break;
}
}
vector< int > ans;
while(!s.empty()) {
ans.push_back(s.top() + 1);
s.pop();
}
for(int i = n - 1; i >= 0; --i) {
out << ans[i] << " ";
}
in.close(); out.close();
return 0;
}