Pagini recente » Cod sursa (job #330430) | Cod sursa (job #2029279) | Rating Roca Alexandru (AlexRoca) | Cod sursa (job #2001699) | Cod sursa (job #1377362)
#include <cstdio>
#include <queue>
#define NMAX 50007
using namespace std;
queue < int > q;
vector < int > v[NMAX], Ans;
int Ap[NMAX];
int n, m;
void bfs(){
while(!q.empty()){
int Nod = q.front();
q.pop();
Ans.push_back(Nod);
for(int i = 0; i < v[Nod].size(); ++i){
--Ap[v[Nod][i]];
if(Ap[v[Nod][i]] == 0)
q.push(v[Nod][i]);
}
}
}
int main(){
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
scanf("%d %d", &n, &m);
for(int i = 1; i <= m; ++i){
int a, b;
scanf("%d %d", &a, &b);
v[a].push_back(b);
++Ap[b];
}
for(int i = 1; i <= n; ++i)
if(Ap[i] == 0)
q.push(i);
bfs();
for(int i = 0; i < n; ++i)
printf("%d ", Ans[i]);
return 0;
}