Pagini recente » Cod sursa (job #867487) | Cod sursa (job #889451) | Cod sursa (job #1180594) | Cod sursa (job #3126956) | Cod sursa (job #879071)
Cod sursa(job #879071)
#include<stdio.h>
#include<vector>
#include<queue>
using namespace std;
vector<int> suc[50001];
queue<int> q;
bool viz[50001];
int sol[50001],k,pred[50001];
int n,m;
void sortop()
{
while( !q.empty() )
{
int x=q.front() , number;
for (int i=0 ; i<suc[x].size() ; ++i)
{
number=suc[x][i];
-- pred[number];
if(pred[number] == 0)
q.push(number);
}
sol[++k]=x;
q.pop();
}
}
int main ()
{
freopen("sortaret.in" , "r" , stdin);
freopen("sortaret.out" , "w" , stdout);
scanf("%d %d" , &n , &m);
for (int i=1 ; i<=m ; ++i)
{
int x=0,y=0;
scanf("%d %d" , &x , &y);
++ pred[y];
suc[x].push_back(y);
}
for (int i=1 ; i<=n ; ++i)
if(pred[i] == 0)
q.push(i);
sortop();
for (int i=1 ; i<=k ; ++i)
printf("%d " , sol[i]);
return 0;
}