Pagini recente » Cod sursa (job #1496058) | Cod sursa (job #1182506) | Cod sursa (job #2176124) | Cod sursa (job #2097314) | Cod sursa (job #342076)
Cod sursa(job #342076)
#include <iostream>
#include <vector>
using namespace std;
long N,M;
vector<int> nodes[50100];
int deg[50100];
int Q[50100];
int main() {
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%ld%ld",&N,&M);
long x,y;
for (int i=0;i<M;++i) {
scanf("%ld%ld",&x,&y);
nodes[x].push_back(y);
deg[y]++;
}
for (int i=1;i<=N;++i)
if (deg[i] == 0) Q[++Q[0]] = i;
for (int i=1;i<=N;++i) {
x = Q[i];
for (vector<int>::iterator it = nodes[x].begin(); it != nodes[x].end(); ++it) {
deg[*it]--;
if (deg[*it] == 0) Q[++Q[0]] = *it;
}
}
for (int i=1;i<=N;++i) printf("%d ",Q[i]);
fclose(stdin);
fclose(stdout);
return 0;
}