Pagini recente » Cod sursa (job #560265) | Cod sursa (job #2339671) | Cod sursa (job #1332547) | Cod sursa (job #1349221) | Cod sursa (job #2668202)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int> muchii[100010];
map<int, bool> vizitat;
vector<int> grad;
vector<int> sol;
void dfs(int nodCurent) {
vizitat[nodCurent] = true;
for (int vecin : muchii[nodCurent]) {
if (!vizitat[vecin]) {
grad[vecin]--;
if (grad[vecin] == 0) sol.push_back(vecin);
dfs(vecin);
}
}
}
int main() {
int nrCompConexe = 0;
int n, m, x, y;
fin >> n >> m;
for (int i = 1; i <= m; i++) {
fin >> x >> y;
muchii[x].push_back(y);
grad[y]++;
}
for (int i = 1;i <= n;i++) {
if (grad[i] == 0) sol.push_back(i);
}
dfs(sol[1]);
//reverse(sol.begin(),sol.end());
for (int elem : sol)
{
fout << elem << " ";
}
}