Pagini recente » Cod sursa (job #74195) | Cod sursa (job #1116672) | Cod sursa (job #1368163) | Cod sursa (job #671459)
Cod sursa(job #671459)
#include <iostream>
#include <fstream>
#define maxN 50005
#define maxM 100005
using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,saw[maxN],st[maxN],nr=0;
struct graf
{
int nod;
graf *next;
} *G[maxM];
void addN(int x,int y)
{
graf *p;
p=new graf;
p->nod=y;
p->next=G[x];
G[x]=p;
}
void read_ini()
{
f>>n; f>>m;
int i,a,b;
for(i=1; i<=m ;i++)
{
f>>a; f>>b;
addN(a,b);
}
for(i=1; i<=n ;i++)
saw[i]=0;
}
void DF(int s)
{
graf *q;
saw[s]=1;
for(q=G[s]; q!=NULL ;q=q->next)
{
if(!saw[q->nod])
DF(q->nod);
}
st[nr++]=s;
}
int main()
{
int i;
read_ini();
for(i=1; i<=n ;i++)
{
if(!saw[i])
DF(i);
}
for(i=n-1; i>=0 ;i--)
g<<st[i]<<" ";
return 0;
}