Pagini recente » Cod sursa (job #268895) | Cod sursa (job #2217676) | Cod sursa (job #2702464) | Cod sursa (job #257122) | Cod sursa (job #2485245)
#include <fstream>
#include <vector>
#include <queue>
const int NMAX=50001;
std::queue<int>q;
std::vector<int>succ[NMAX];
int pred[NMAX];
bool viz[NMAX];
std::ifstream in("sortaret.in");
std::ofstream out("sortaret.out");
int main(){
int n,m;
in>>n>>m;
for(int i=1,x,y;i<=m;i++)
in>>x>>y,succ[x].push_back(y),pred[y]++;
for(int i=1;i<=n;i++)
if(pred[i]==0)
q.push(i),viz[i]=1;
while(!q.empty()){
int top=q.front();
q.pop();
for(int x:succ[top]){
pred[x]--;
if(pred[x]==0)
q.push(x);
}
out<<top<<" ";
}
return 0;
}