Pagini recente » Cod sursa (job #1870802) | Cod sursa (job #2548486) | Cod sursa (job #2969463) | Cod sursa (job #2401332) | Cod sursa (job #1925441)
#include <fstream>
#include <vector>
using namespace std;
int grad[50001], q[50001], n, m;
vector<int>vec[50001];
ifstream fi("sortaret.in");
ofstream fo("sortaret.out");
void sortare () {
int nodc, l = 0;
vector<int>::iterator j;
for (int i = 1; i <= n; i++)
if (!grad[i])
q[++l] = i;;
for (int i = 1; i <= n; i++) {
nodc = q[i];
for (j = vec[nodc].begin(); j != vec[nodc].end(); j++) {
grad[*j]--;
if (!grad[*j])
q[++l] = *j;
}
}
}
int main () {
int x, y;
fi >> n >> m;
for (int i = 1; i <= m; i++)
fi >> x >> y, vec[x].push_back(y), grad[y]++;
sortare();
for (int i = 1; i <= n; i++)
fo << q[i] << ' ';
return 0;
}