Pagini recente » Cod sursa (job #2727143) | Cod sursa (job #2639550) | Cod sursa (job #1204581) | Cod sursa (job #513486) | Cod sursa (job #2581506)
#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;
while (l < n)
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;
}