Pagini recente » Cod sursa (job #1676081) | Cod sursa (job #1616958) | Cod sursa (job #2464300) | Cod sursa (job #2397507) | Cod sursa (job #309269)
Cod sursa(job #309269)
#include<fstream.h>
int ok,m,n,contor[50000],i,j,c[100],k,u;
struct nod
{
int succ;
nod *urm;
};
nod* a[100];
void adaug(int i,int j)
{
nod *c,*d;
contor[j]++;
c=a[i];
d=new nod;
d->succ=j;
d->urm=0;
if(c==0)
a[i]=d;
else
{
while(c->urm)
c=c->urm;
c->urm=d;
}
}
void actual(int i)
{
nod* c=a[i];
while(c)
{
contor[c->succ]--;
c=c->urm;
}
}
int main()
{
ifstream f("sortaret.in");
ofstream g("sortare.out");
f>>n>>u;
for(i=1;i<=n;i++)
{
contor[i]=0;
a[i]=0;
}
m=n;
for(k=1;k<=u;k++)
{
f>>i>>j;
if(i)
adaug(i,j);
}
do
{
ok=0;
for(i=1;i<=n;i++)
if(contor[i]==0)
{
ok=1;
m--;
contor[i]=-1;
actual(i);
c[k]=i;
k++;
}
}while(m&&gasit);
if(m==0)
{
for(i=0;i<k;i++)
g<<c[i]<<" ";
g<<"ok";
}
return 0;
}