Pagini recente » Cod sursa (job #2957518) | Cod sursa (job #2837455) | Cod sursa (job #817750) | Cod sursa (job #2651780) | Cod sursa (job #3243913)
#include <fstream>
#include <vector>
#include <deque>
using namespace std;
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
vector<vector<int>> v;
vector<int> cnt,rasp;
deque<int> q;
int main()
{
int n,m,i,j,a,b,nod;
cin>>n>>m;
v.resize(n+1);cnt.resize(n+1);
for(i=1;i<=m;i++){
cin>>a>>b;
v[a].push_back(b);
cnt[b]++;
}
for(i=1;i<=n;i++){
if(cnt[i]==0){q.push_back(i);}
}
while(!q.empty()){
nod=q.front();q.pop_front();
rasp.push_back(nod);
for(j=0;j<v[nod].size();j++){
cnt[v[nod][j]]--;
if(cnt[v[nod][j]]==0) q.push_back(v[nod][j]);
}
}
for(i=0;i<rasp.size();i++) cout<<rasp[i]<<" ";
return 0;
}