Pagini recente » Borderou de evaluare (job #2923786) | Cod sursa (job #2906862) | Cod sursa (job #255273) | Cod sursa (job #1934922) | Cod sursa (job #3195108)
#include <fstream>
#include <stack>
#include <vector>
#include <deque>
#include <bitset>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
vector<int> G[50005];
int rezz[50005];
int ind = 0;
bitset<50005> vzt_dfs;
void dfs(int nod) {
vzt_dfs[nod] = true;
for (auto it : G[nod])
if (vzt_dfs[it] == false)
dfs(it);
rezz[ind++] = nod;
}
int main() {
int n, m;
in >> n >> m;
for (int i = 0; i < m; i++) {
int a, b;
in >> a >> b;
G[a].push_back(b);
}
for (int i = 1; i <= n; i++) {
if (vzt_dfs[i] == false)
dfs(i);
}
for (; ind >= 0; ind--)
{
out << rezz[ind] << '\n';
}
}