Pagini recente » Cod sursa (job #1687590) | Cod sursa (job #1146078) | Cod sursa (job #386691) | Rating qwertyuiop (skylake59) | Cod sursa (job #2540025)
#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;
for(int i=0;i<n;i++)
if(vin[i]==0){
startv = i;
break;
}
vector<int> sortt;
walk(v, startv, sortt);
for(auto e : sortt)
cout<<e<<' ';
return 0;
}