Pagini recente » Cod sursa (job #2081899) | Cod sursa (job #1918052) | Cod sursa (job #1124481) | Cod sursa (job #2551469) | Cod sursa (job #1127827)
#include <stdio.h>
#define NMax 50000
int M, N, A[NMax][NMax], R[NMax], Viz[NMax];
void sortare () {
int i, j, index, root;
index=0;
for (i=1; i<=N; ++i) {
root=1;
for (j=1; j<=N; ++j) {
if (A[j][i] == 1) {
root=0;
break;
}
}
if (root==1) {
index++;
R[index] = i;
Viz[i]=1;
printf("root = %d index = %d \n",i, index);
}
}
for (j=1; j<=index; ++j) {
for (i=1; i<=N; ++i) {
if ((A[R[j]][i] == 1)&&(Viz[i]==0)) {
index++;
R[index] = i;
Viz[i] = 1;
}
}
}
for(i=1; i<=N; ++i) {
printf("%d ",R[i]);
}
}
int main (void) {
int i,j,p,q;
freopen("sortare.in","r",stdin);
freopen("sortare.out","w",stdout);
scanf("%d %d", &N, &M);
for (p = 1; p<=N; ++p) {
Viz[p]=0;
R[p]=0;
for (q = 1; p<=N; ++p)
A[p][q] = 0;
}
for (p = 1; p<=M; ++p) {
scanf("%d %d",&i, &j);
A[i][j] = 1;
}
sortare();
return 0;
}