Pagini recente » Cod sursa (job #1169914) | Cod sursa (job #368555) | Cod sursa (job #109262) | Cod sursa (job #1567034) | Cod sursa (job #3286867)
#include<fstream>
#include<vector>
#include<queue>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
int n,m,parcurs[50002],a,b;
vector<int>v[50002],l;
priority_queue<int,vector<int>,greater<int>>pq;
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++){
cin>>a>>b;
parcurs[b]++;
v[a].push_back(b);
}
for(int i=1;i<=n;i++){
if(parcurs[i]==0)
pq.push(i);
}
while(!pq.empty()){
a=pq.top();
pq.pop();
for(int i=0;i<v[a].size();i++){
parcurs[v[a][i]]--;
if(parcurs[v[a][i]]==0)
pq.push(v[a][i]);
}
l.push_back(a);
}
for(int i=0;i<l.size();i++)
cout<<l[i]<<" ";
return 0;
}