Pagini recente » Cod sursa (job #3162544) | Cod sursa (job #902133) | Cod sursa (job #1162806) | Cod sursa (job #937291) | Cod sursa (job #591694)
Cod sursa(job #591694)
#include <fstream>
using namespace std;
typedef struct nod
{
int inf;
nod *urm;
} NOD;
typedef NOD *graf[50100];
graf G;
int n,m,gr[50100],c[50100];
ifstream f("sortaret.in");
ofstream g("sortaret.out");
void citire()
{
NOD *p;
int x,y;
f>>n>>m;
for(int i=1;i<=m;i++)
{
f>>x>>y;
gr[y]++;
p=new NOD;
p->urm=G[x];p->inf=y;G[x]=p;
}
}
void rezolv()
{
for(int i=1;i<=n;i++)
if(!gr[i])
c[++c[0]]=i;
for(int i=1;i<=n;i++)
{
NOD *p=G[c[i]];
while(p)
{
gr[p->inf]--;
if(!gr[p->inf])
c[++c[0]]=p->inf;
p=p->urm;
}
}
}
int main()
{
citire();
rezolv();
for(int i=1;i<=n;i++)
g<<c[i]<<" ";
g<<endl;
f.close();
g.close();
return 0;
}