Pagini recente » Cod sursa (job #642061) | Cod sursa (job #1342166) | Cod sursa (job #2981304) | Cod sursa (job #1788587) | Cod sursa (job #1555379)
#include <fstream>
#include <vector>
using namespace std;
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
int n, m, s[50001], predecesori[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); predecesori[b]++;
}
for (i = 1; i <= n; i++)
if (predecesori[i] == 0)
l++, s[l] = i;
for (i = 1; i <= n; i++)
for (it = succesor[s[i]].begin(); it != succesor[s[i]].end(); it++) {
predecesori[*it]--;
if (predecesori[*it] == 0)
l++, s[l] = *it;
}
for (i = 1; i <= n; i++)
fo << s[i] << ' ';
return 0;
}