Pagini recente » Monitorul de evaluare | Cod sursa (job #3323102) | Cod sursa (job #965202) | Cod sursa (job #3311199) | Cod sursa (job #3305973)
#include <bits/stdc++.h>
using namespace std;
//#define int long long
#define ll long long
#define cin fin
#define cout fout
ifstream fin ("sortaret.in");
ofstream fout("sortaret.out");
constexpr int NMAX = (int) 5e4;
vector<int> v[NMAX + 1], vect;
int n, freq[NMAX + 1];
bool viz[NMAX + 1];
int m, x, y;
inline void dfs (int node)
{
viz[node] = 1;
for (auto elem : v[node])
if (!viz[elem])
dfs(elem);
vect.push_back(node);
}
signed main(void)
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
cin >> n >> m;
for (int i = 1; i <= m; i++)
{
cin >> x >> y;
v[x].push_back(y);
freq[y]++;
}
for (int i = 1; i <= n; i++)
if (!viz[i] && !freq[i])
dfs(i);
reverse(vect.begin(), vect.end());
for (auto elem : vect)
cout << elem << ' ';
}