Pagini recente » Cod sursa (job #598023) | Cod sursa (job #1398298) | Cod sursa (job #1887596) | Cod sursa (job #1104322) | Cod sursa (job #2581511)
#include <fstream>
#include <vector>
using namespace std;
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
int n, m, s[50001], predecesor[50001], a, b, i, l;
vector<int> succesor[50001];
vector<int>::iterator it;
int main() {
fi >> n >> m;
while (m--) {
fi >> a >> b;
succesor[a].push_back(b); predecesor[b]++;
}
for (i = 1; i <= n; i++)
if (not predecesor[i])
l++, s[l] = i;
for (i = 1; l < n; i++)
for (it = succesor[s[i]].begin(); it != succesor[s[i]].end(); it++) {
predecesor[*it]--;
if (not predecesor[*it])
l++, s[l] = *it;
}
for (i = 1; i <= n; i++)
fo << s[i] << ' ';
return 0;
}