Pagini recente » Cod sursa (job #45953) | Cod sursa (job #1989224) | Cod sursa (job #1213522) | Cod sursa (job #1095151) | Cod sursa (job #1777780)
#include <cstdio>
#include <vector>
using namespace std;
struct Nod
{
vector<int> v;
int s;
} 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].s = 0;
for(i = 0; i < m; i++)
{
scanf("%d%d", &a, &b);
nod[a - 1].v.push_back(b - 1);
nod[b - 1].s = 1;
}
for(i = 0; i < n; i++)
{
if(nod[i].s == 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++)
{
if(nod[nod[v[i]].v[j]].s != 2)
{
v[lv++] = nod[v[i]].v[j];
nod[nod[v[i]].v[j]].s = 2;
}
}
}
return 0;
}