Pagini recente » Cod sursa (job #344717) | Cod sursa (job #2122004) | Cod sursa (job #3134602) | Cod sursa (job #591480) | Cod sursa (job #1980889)
#include<fstream>
using namespace std;
ofstream fout("sortaret.out");
struct nod
{
int vf;
nod *urm;
};
nod *prim[50002];
int n;
int gr[50002];
int c[50002], first, last;
void adauga(int x, int y)
{
nod *p;
p=new nod;
p->vf=x;
p->urm=prim[y];
prim[y]=p;
}
void stergere_grade(int x)
{
int i;
nod *p;
p=prim[x];
while(p)
{
gr[p->vf]--;
if(gr[p->vf]==0)
{
c[last]=p->vf;
last++;
fout<<p->vf<<" ";
}
p=p->urm;
}
}
int main()
{
ifstream fin("sortaret.in");
int m, i, x, y;
fin>>n>>m;
for(i=1; i<=m; i++)
{
fin>>x>>y;
adauga(y, x);
gr[y]++;
}
first=last=1;
for(i=1; i<=n; i++)
{
if(gr[i]==0)
{
fout<<i<<" ";
c[last]=i;
last++;
}
}
while(first<=last)
{
stergere_grade(c[first]);
first++;
}
return 0;
}