Pagini recente » Cod sursa (job #2097303) | Cod sursa (job #2829495) | Cod sursa (job #130656) | Cod sursa (job #371326) | Cod sursa (job #2540028)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
int viz[50001];
void walk(vector<vector<int>> v, int startv, vector<int> &sortt){
if(!viz[startv]){
sortt.push_back(startv+1);
viz[startv] = 1;
}
for(auto e : v[startv])
walk(v, e, sortt);
}
int main() {
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int n, m;
scanf("%d %d\n", &n, &m);
vector<vector<int>> v;
vector<int> vin;
vin.resize(n);
v.resize(n);
for(int i=0;i<m;i++){
int a, b;
scanf("%d %d\n", &a, &b);
v[a-1].push_back(b-1);
vin[b-1] = 1;
}
int startv = -1;
vector<int> sortt;
for(int i=0;i<n;i++)
if(vin[i]==0)
walk(v, i, sortt);
for(int i=0;i<n;i++)
if(!viz[i]){
sortt.push_back(i+1);
viz[i] = 1;
}
for(auto e : sortt)
cout<<e<<' ';
return 0;
}