Pagini recente » Cod sursa (job #776568) | Cod sursa (job #3255748) | Cod sursa (job #2656670) | Cod sursa (job #2055573) | Cod sursa (job #2479882)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
const int NMAX=1e5+4;
int n,m,dg[NMAX];
vector <int> g[NMAX],lvl[NMAX];
int main(){
int x,y,node;
fin>>n>>m;
for(int i=0;i<m;++i){
fin>>x>>y;
g[x].push_back(y);
++dg[y];
}
for(int i=1;i<=n;++i)
if(!dg[i]){
lvl[1].push_back(i);
}
for(int i=1;i<=n && lvl[i].size();++i){
for(auto node:lvl[i]){
dg[node]=-1;
for(auto it:g[node]){
--dg[it];
if(!dg[it]){
lvl[i+1].push_back(it);
}
}
}
}
for(int i=1;i<=n && lvl[i].size();++i){
for(auto it:lvl[i]){
fout<<it<<' ';
}
}
return 0;
}