Pagini recente » Cod sursa (job #398212) | Cod sursa (job #2233665) | Istoria paginii runda/oni22 | Cod sursa (job #1348078) | Cod sursa (job #1997358)
#include<cstdio>
#include<queue>
using namespace std;
struct node{
int val;
node *urm;
}*nodes[50001];
int ex[50001];
int in[50001];
int N,M;
int i;
int a,b;
node *p;
queue<int> q;
int main(){
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d %d",&N,&M);
for(i = 0; i < M; ++i){
scanf("%d %d",&a,&b);
p = new node;
p->val = b;
p->urm = nodes[a];
nodes[a] = p;
++ex[b];
++in[a];
}
for(i = 1; i <= N; ++i){
if(ex[i]==0)
q.push(i);
}
int current;
while(!q.empty()){
current = q.front();
q.pop();
printf("%d ",current);
p = nodes[current];
while(p != NULL){
if(--ex[p->val] == 0)
q.push(p->val);
p = p->urm;
}
};
return 0;
}