Pagini recente » Cod sursa (job #1857404) | Cod sursa (job #2896795) | Cod sursa (job #2865268) | Cod sursa (job #1852399) | Cod sursa (job #1112238)
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
int main() {
ifstream in("sortaret.in");
ofstream out("sortaret.out");
int n, m, *gr, i, x, y, *c, cl = 0;
vector<int> *v;
vector<int>::iterator it;
in>>n>>m;
gr = new int[n + 1];
c = new int[n + 1];
v = new vector<int>[n + 1];
for (i = 1 ; i <= n ; i ++)
gr[i] = 0;
for (i = 0 ; i < m ; i ++) {
in>>x>>y;
gr[y]++;
v[x].push_back(y);
}
for (i = 1 ; i <= n ; i ++)
if (gr[i] == 0) {
c[cl] = i;
cl++;
}
i = 0;
while (i < cl) {
x = c[i];
for (it = v[x].begin() ; it != v[x].end() ; it ++) {
gr[*it] --;
if (gr[*it] == 0) {
c[cl] = *it;
cl ++;
}
}
i ++;
}
for (i = 0 ; i < cl ; i ++) {
out<<c[i]<<" ";
}
in.close();
out.close();
return 0;
}