Pagini recente » Cod sursa (job #1241690) | Cod sursa (job #1466920)
#include<fstream>
using namespace std;
fstream f("sortaret.in",ios::in);
fstream g("sortaret.out",ios::out);
struct nod{
int succ;
nod* urm;};
int n,m,i,j,k,gasit;
int contor[100],c[100];
nod *a[100];
void adaug(int i,int j)
{
nod *c,*d;
contor[j]++;
c=a[i];
d=new nod;
d->urm=0;
d->succ=j;
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()
{
int n,m,p,q,i,j;
f>>n;
f>>m;
for(i=1;i<=m;i++)
{contor[i]=0;
a[i]=0;}
p=m;
while(p)
{
f>>i>>j;
adaug(i,j);
p--;
}
q=m;
do
{
k=1;gasit=0;
for(i=1;i<=q;i++)
if(contor[i]==0)
{
gasit=1;
m--;
c[k]=i;
k++;
contor[i]=-1;}
for(i=1;i<=k-1;i++)
{
actual(c[i]);
g<<c[i]<<" "; }
}
while(gasit&&m);
if(m)
g<<-1;
return 0;}