Pagini recente » Cod sursa (job #3196449) | Cod sursa (job #161318) | Cod sursa (job #1918949) | Cod sursa (job #214627) | Cod sursa (job #622966)
Cod sursa(job #622966)
#include<fstream.h>
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int k,i,j,n,m,stiva[100001],U[100001];
struct lista { int nod;
lista *urm;
} * G[100001];
void adauga(int i, int j)
{ lista *p;
p=G[i];
while(p && p->nod - j) p=p->urm;
if(!p) {
p=new lista;
p->nod=j;
p->urm=G[i];
G[i]=p;}
}
void citeste()
{ int i,j;
f>>n>>m;
while(m--) { f>>i>>j;
adauga(i,j);
}
}
void DF(int nod)
{ lista *p;
U[nod]=1;
for(p=G[nod];p!=NULL;p=p->urm) if(!U[p->nod]) DF(p->nod);
stiva[++k]=nod;
}
int main()
{ citeste();/*
lista *p = G[6];
while(p) g << p->nod << " ", p = p->urm;
g << "\n";*/
for(i=1;i<=n;i++) if(!U[i]) DF(i);
for(i=n;i>=1;i--) g<<stiva[i]<<" ";
g<<"\n";
f.close();
g.close();
return 0;
}