Pagini recente » Cod sursa (job #630411) | Cod sursa (job #2869400) | Cod sursa (job #2564532) | Cod sursa (job #2311102) | Cod sursa (job #2519474)
#include <iostream>
#include <fstream>
#include <algorithm>
#include <vector>
#include <queue>
#define NMAX 50005
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector <int> Add[NMAX], ans;
queue <int> q;
int N, M, dex[NMAX];
int main()
{
int x, y, currNode;
fin >> N >> M;
for(int i = 1; i <= M; i++){
fin >> x >> y;
Add[x].push_back(y);
dex[y]++;
}
for(int i = 1; i <= N; i++){
if(!dex[i]){
q.push(i);
}
}
while(!q.empty()){
currNode = q.front();
q.pop();
ans.push_back(currNode);
for(int i = 0; i < Add[currNode].size(); i++){
dex[Add[currNode][i]]--;
if(dex[Add[currNode][i]] == 0){
q.push(Add[currNode][i]);
}
}
}
for(int i = 0; i < N; i++){
fout << ans[i] << " ";
}
return 0;
}