Pagini recente » Cod sursa (job #2606203) | Cod sursa (job #3244130) | Cod sursa (job #237113) | Cod sursa (job #1818070) | Cod sursa (job #529903)
Cod sursa(job #529903)
#include <stdio.h>
int n,m;
struct Nod {
int v;
Nod* next;
};
using namespace std;
Nod* a[50001];
char viz[50001];
int sortt[50005];
int x,y;
void add(Nod *&p, int val) {
Nod* k = new Nod();
k->v = val;
k->next = p;
p = k;
}
int df(int s) {
viz[s] = 1;
for(Nod* it = a[s]; it != 0; it = it -> next) {
if (!viz[it->v]) df(it->v);
}
sortt[++sortt[0]] = s;
}
int main() {
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
scanf("%d %d",&n,&m);
for(int i = 0; i < m; i++) {
scanf("%d %d",&x,&y);
add(a[x],y);
}
for(int i = 1; i <= n; i++)
if (!viz[i])
df(i);
for(int i = n; i >= 1; i--)
printf("%d ",sortt[i]);
return 0;
}