Pagini recente » Cod sursa (job #383286) | Cod sursa (job #786363) | Cod sursa (job #2640505) | Cod sursa (job #3143855) | Cod sursa (job #2207602)
#include <bits/stdc++.h>
using namespace std;
const int N=50005;
int deg[N],TopSort[N];
queue <int> q;
vector <int> G[N];
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
int n,m,a,b;
scanf("%d%d",&n,&m);
for(int i=1;i<=m;i++){
scanf("%d%d",&a,&b);
deg[b]++;
G[a].push_back(b);
}
for(int i=1;i<=n;i++){
if(deg[i]==0) q.push(i);
}
int cnt=0;
while(!q.empty()){
int x=q.front();
q.pop();
TopSort[++cnt]=x;
for(int i=0;i<G[x].size();i++){
int y=G[x][i];
deg[y]--;
if(deg[y]==0) q.push(y);
}
}
for(int i=1;i<=n;i++) printf("%d ",TopSort[i]);
return 0;
}