Pagini recente » Cod sursa (job #1626026) | Cod sursa (job #574215) | Cod sursa (job #445785) | Cod sursa (job #747449) | Cod sursa (job #501799)
Cod sursa(job #501799)
#include <iostream>
#include <string>
#include <vector>
using namespace std;
#define NM 50005
int N, M, GI[NM];
vector <int> G[NM], g0;
int main()
{
int a, b;
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", &a, &b);
G[a].push_back(b);
++GI[b];
}
for (int i = 1; i <= N; ++i) if (!GI[i]) g0.push_back(i);
int indice = 0;
while (indice < g0.size())
{
int nod = g0[indice];
printf ("%d ", nod);
++indice;
for (int i = 0; i < G[nod].size(); ++i)
{
int nnod = G[nod][i];
--GI[nnod];
if (!GI[nnod]) g0.push_back(nnod);
}
}
return 0;
}