Pagini recente » Cod sursa (job #570736) | Borderou de evaluare (job #1170465) | Cod sursa (job #46244) | Cod sursa (job #2285007) | Cod sursa (job #2485257)
#include<cstdio>
#include<vector>
#include<queue>
const int NMAX = 50000;
std :: vector<int>v[NMAX + 1];
int pred[NMAX + 1];
std :: queue<int>q;
int main()
{
int n , m , x , y ;
freopen("sortaret.in" , "r" , stdin);
freopen("sortaret.out" , "w" , stdout);
scanf("%d%d" , &n , &m);
for(int i = 1; i <= m ; i ++)
{
scanf("%d%d" , &x , &y);
pred[y] ++;
v[x].push_back(y);
}
for(int i = 1 ; i <= n ; i ++)
{
if(pred[i] == 0)
q.push(i);
};
while(q.empty() == false)
{
int aux = q.front();
printf("%d " , aux);
q.pop();
for(int i = 0 ; i < v[aux].size() ; i ++)
{
pred[v[aux][i]] -- ;
if(pred[v[aux][i]] == 0)
q.push(v[aux][i]);
}
}
return 0;
}