Pagini recente » Cod sursa (job #2006638) | Cod sursa (job #2246653) | Cod sursa (job #1191503) | Cod sursa (job #3194562) | Cod sursa (job #1039802)
#include <cstdio>
#include <cstring>
#include <vector>
#define NMAX 50005
using namespace std;
vector <int>lista[NMAX], coada;
int n, m, grad[NMAX], viz[NMAX];
void dfs_graf(int nod)
{
viz[nod] = 1;
if(grad[nod] == 0)
printf("%d ", nod);
vector <int>::iterator it;
for(it = lista[nod].begin(); it < lista[nod].end(); it++)
if(viz[*it] == 0)
{
grad[*it]--;
dfs_graf(*it);
}
}
int main()
{
freopen("sortaret.in", "r", stdin);
freopen("sortaret.out", "w", stdout);
int x, y;
scanf("%d %d", &n, &m);
for(int i = 0; i < m; i++)
{
scanf("%d %d", &x, &y);
lista[x].push_back(y);
grad[y]++;
}
for(int i = 1; i <= n; i++)
if(viz[i] == 0 && grad[i] == 0)
dfs_graf(i);
return 0;
}