Pagini recente » Cod sursa (job #1265744) | Cod sursa (job #262192) | Istoria paginii utilizator/despina | Monitorul de evaluare | Cod sursa (job #2104440)
#include <fstream>
#include <vector>
#include <queue>
using namespace std;
int n, m, x, y, gr[50001];
vector<int>v[50001];
vector<int>::iterator it;
queue<int>q;
int main () {
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
fi >> n >> m;
for (int i = 1; i <= m; i++)
fi >> x >> y, v[x].push_back(y), gr[y]++;
for (int i = 1; i <= n; i++)
if (gr[i] == 0)
q.push(i);
while (!q.empty()) {
int nodc = q.front(); q.pop();
fo << nodc << ' ';
for (it = v[nodc].begin(); it != v[nodc].end(); it++) {
gr[*it]--;
if (!gr[*it])
q.push(*it);
}
}
return 0;
}