Pagini recente » Cod sursa (job #973431) | Cod sursa (job #3225451) | Cod sursa (job #1712022) | Cod sursa (job #1560565) | Cod sursa (job #1496451)
#include <iostream>
#include <cstdio>
using namespace std;
int v[100010];
struct nod
{
int a;
nod *adr;
};
nod *l[100000];
void adaug(nod *&p,int x)
{
if(p==NULL)
{
p=new nod;
p->a=x;
p->adr=0;
}
else
{
nod *q=new nod;
q->a=x;
q->adr=p;
p=q;
}
}
int cautare(int m)
{
int i=1;
while(i<=m)
{
if(v[i]==0)
{
v[i]=-1;
return i;
}
i++;
}
return 0;
}
int main()
{
int x,y,n,m,i;
FILE *f=fopen("sortaret.in","r");
fscanf(f,"%d %d",&n,&m);
for( i=1;i<=m;i++)
{
fscanf(f,"%d %d",&x,&y );
v[y]++;
adaug(l[x],y);
}
i=1;
f=fopen("sortaret.out","w");
while(i<=n)
{
int nr=cautare(m);
fprintf(f,"%d ",nr);
while(l[nr])
{
v[l[nr]->a]--;
l[nr]=l[nr]->adr;
}
i++;
}
return 0;
}