Pagini recente » Cod sursa (job #1664282) | Cod sursa (job #995711) | Cod sursa (job #2655806) | Cod sursa (job #1367726) | Cod sursa (job #1778971)
#include <cstdio>
#include <vector>
using namespace std;
struct Nod
{
vector<int> v;
int leg;
} nod[50001];
int v[100001];
int n, m, lv = 0;
int main()
{
int a, b, i, j;
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
scanf("%d%d", &n, &m);
for(i = 0; i < n; i++)
nod[i].leg = 0;
for(i = 0; i < m; i++)
{
scanf("%d%d", &a, &b);
nod[a - 1].v.push_back(b - 1);
nod[b - 1].leg++;
}
for(i = 0; i < n; i++)
{
if(nod[i].leg == 0)
{
v[lv++] = i;
}
}
for(i = 0; i < lv; i++)
{
printf("%d ", v[i] + 1);
for(j = 0; j < nod[v[i]].v.size(); j++)
{
nod[nod[v[i]].v[j]].leg--;
if(nod[nod[v[i]].v[j]].leg == 0)
{
v[lv++] = nod[v[i]].v[j];
}
}
}
return 0;
}