Pagini recente » Cod sursa (job #1681645) | Cod sursa (job #2474928) | Cod sursa (job #3125344) | Cod sursa (job #353531) | Cod sursa (job #176483)
Cod sursa(job #176483)
#include <stdio.h>
struct dubl {
int x,y;
} mat[1000000];
int ord[1000000];
int max=0;
int n,m;
FILE *f,*g;
void citire();
void fai();
int main(){
f=fopen("sortaret.in","r");
g=fopen("sortaret.out","w");
citire();
fai();
fclose(g);
return 0;
}
void adauga(int i){
if(ord[mat[i].y]!=0 && (ord[mat[i].x]+1<ord[mat[i].y])){
ord[mat[i].y]=ord[mat[i].x]+1;
}else if(ord[mat[i].y]==0){
ord[mat[i].y]=ord[mat[i].x]+1;
}
if(max<ord[mat[i].y]){
max=ord[mat[i].y];
}
}
void fai(){
int i;
for(i=0;i<m;++i){
adauga(i);
}
for(i=0;i<=max;++i){
for(int j=1;j<=n;++j){
if(ord[j]==i){
fprintf(g,"%d ",j);
}
}
}
}
void citire(){
fscanf(f,"%d%d",&n,&m);
for(int i=0;i<m;++i){
fscanf(f,"%d%d",&mat[i].x,&mat[i].y);
}
}