Pagini recente » Cod sursa (job #983107) | Cod sursa (job #806807) | Cod sursa (job #430600) | Cod sursa (job #54822) | Cod sursa (job #2252915)
#include <bits/stdc++.h>
using namespace std;
int leg[50005];
vector<int> g[50005];
int v[50005];
int main()
{
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int n, m;
scanf("%d%d", &n, &m);
for(int i = 0; i < m; i++)
{
int a, b;
scanf("%d%d", &a, &b);
g[a].push_back(b);
leg[b]++;
}
int lv = 0;
for(int i = 1; i <= n; i++)
if(leg[i] == 0)
v[lv++] = i;
int r = 0;
while(lv > r)
{
for(int i = 0; i < g[v[r]].size(); i++)
{
leg[g[v[r]][i]]--;
if(leg[g[v[r]][i]] == 0)
v[lv++] = g[v[r]][i];
}
r++;
}
for(int i = 0; i < n; i++)
printf("%d ", v[i]);
return 0;
}