Pagini recente » Cod sursa (job #161926) | Cod sursa (job #1818930) | Cod sursa (job #1938080) | Cod sursa (job #830733) | Cod sursa (job #2540033)
#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
int viz[50001];
void walk(vector<vector<int>> v, int startv, vector<int> &sortt){
sortt.push_back(startv+1);
viz[startv] = 1;
for(auto e : v[startv])
if(!viz[e])
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(!viz[i])
walk(v, i, sortt);
for(auto e : sortt)
cout<<e<<' ';
return 0;
}