Pagini recente » Cod sursa (job #2690873) | Cod sursa (job #924311) | Cod sursa (job #1022356) | Cod sursa (job #2908720) | Cod sursa (job #2732186)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
const int nMax = 5e4 + 5;
int n, m, deg[nMax], q[nMax];
vector <int> v[nMax];
void read(){
cin >> n >> m;
while(m--){
int x, y;
cin >> x >> y;
v[x].push_back(y);
deg[y]++;
}
}
void solve(){
for(int i = 1; i <= n; i++)
if(deg[i] == 0)
q[++q[0]] = i;
vector <int>::iterator it;
for(int i = 1; i <= n; i++){
int x = q[i];
for(it = v[x].begin(); it != v[x].end(); it++){
deg[*it]--;
if(deg[*it] == 0){
q[++q[0]] = *it;
}
}
}
}
void print(){
for(int i = 1; i <= n; i++)
cout << q[i] << " ";
}
int main()
{
read();
solve();
print();
return 0;
}