Pagini recente » Cod sursa (job #1706128) | Cod sursa (job #3189337) | Cod sursa (job #32431) | Cod sursa (job #491806) | Cod sursa (job #2786191)
#include <fstream>
#include <queue>
#include <vector>
std::ifstream in("sortaret.in");
std::ofstream out("sortaret.out");
const int N = 5e4+1;
std::vector<int> g[N];
std::queue<int> q;
int n, m, nrP[N];
void bfs(){
while(!q.empty()){
int currNode = q.front();
q.pop();
out<<currNode<<' ';
for(auto node : g[currNode]){
--nrP[node];
if(!nrP[node])
q.push(node);
}
}
}
int main(){
in>>n>>m;
for(int i=0;i<m;++i){
int a,b;
in>>a>>b;
g[a].push_back(b);
++nrP[b];
}
for(int i=1;i<=n;++i){
if(!nrP[i]) q.push(i);
}
bfs();
in.close();
out.close();
return 0;
}