Pagini recente » Cod sursa (job #3150655) | Cod sursa (job #2721103) | Cod sursa (job #3120497) | Cod sursa (job #2972959) | Cod sursa (job #2983166)
#include <fstream>
#include <algorithm>
#include <cmath>
#include <vector>
#include <queue>
#include <cstring>
#define ll long long
#define pii pair<int, int>
#define pb push_back
#define x first
#define y second
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
const int NMAX = 1e5;
const int MOD = 1e9 + 5;
const char nl = '\n';
int n, m, f[NMAX], ind[NMAX];
vector<int> v[NMAX], toposort;
void dfs(int node){
f[node] = 1;
for(auto i: v[node]){
if(!f[i])
dfs(i);
}
toposort.pb(node);
}
void solve(){
for(int i = 1; i <= n; ++i){
if(!f[i])
dfs(i);
}
reverse(toposort.begin(), toposort.end());
for(auto i: toposort)
cout << i << ' ';
cout << nl;
}
int main()
{
cin >> n >> m;
for(int i = 1; i <= m; ++i){
int a, b;
cin >> a >> b;
v[a].pb(b);
}
solve();
return 0;
}