Pagini recente » Cod sursa (job #2746275) | Cod sursa (job #438692) | Borderou de evaluare (job #1261567) | Cod sursa (job #2590559) | Cod sursa (job #2145227)
#include <bits/stdc++.h>
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
struct nod {
int inf;
nod *urm;
}*l[50005];
int n,m,viz[50005],st[50005],nr;
void adaug(nod*&p,int x) {
nod *c;
c=new nod;
c->urm=p;
c->inf=x;
p=c;
}
void df(int k) {
nod *c;
viz[k]=1;
for (c=l[k];c;c=c->urm)
if (!viz[c->inf])
df(c->inf);
st[++nr]=k;
}
int main() {
int i,x,j,y,ok;
nod *c;
f>>n>>m;
for (i=1;i<=m;i++) {
f>>x>>y;
ok=1;
for (c=l[x];c;c=c->urm)
if (c->inf==y) {
ok=0;
break;
}
if (ok)
adaug(l[x],y);
}
for (i=1;i<=n;i++)
if (!viz[i])
df(i);
for (i=n;i>=1;i--)
g<<st[i]<<' ';
return 0;
}