Pagini recente » Cod sursa (job #866928) | Monitorul de evaluare | Cod sursa (job #296722) | Cod sursa (job #1518732) | Cod sursa (job #3162779)
#include<bits/stdc++.h>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n, m, x, y, v[50001];
vector<int> g[50001], sol;
queue<int> q;
int main(){
fin>>n>>m;
for(int i=1; i<=m; i++){
fin>>x>>y;
g[x].push_back(y);
v[y]++;
}
for(int i=1; i<=n; i++){
if(!v[i]) q.push(i);
}
while(!q.empty()){
int nod = q.front();
for(int i=0; i<g[nod].size(); i++){
int dest = g[nod][i];
v[dest]--;
if(!v[dest]) q.push(dest);
}
sol.push_back(nod);
q.pop();
}
for(int i=0; i<sol.size(); i++)
fout<<sol[i]<<" ";
}