Pagini recente » Cod sursa (job #1378886) | Cod sursa (job #1097212) | Cod sursa (job #1850428) | Cod sursa (job #1845523) | Cod sursa (job #2145220)
#include<stdio.h>
using namespace std;
FILE*f=fopen("sortaret.in","r");
FILE*g=fopen("sortaret.out","w");
int n,m,viz[50005],v[50005],k,i;
struct nod {
int inf;
nod* urm;
} *L[50005];
void adaug(nod*& l, int x) {
nod* c=new nod;
c->urm=l; c->inf=x;
l=c;
}
void citire() {
int i,x,y;
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++) {
fscanf(f,"%d%d",&x,&y);
adaug(L[x],y);
}
}
void df(int x) {
nod* c;
viz[x]=1;
for(c=L[x];c;c=c->urm)
if(!viz[c->inf]) df(c->inf);
v[++k]=x;
}
void afis() {
int i;
for(i=n;i>=1;i--) fprintf(g,"%d ",v[i]);
}
int main() {
citire();
for(i=1;i<=n;i++)
if(!viz[i]) df(i);
afis();
fclose(f); fclose(g);
return 0;
}