Pagini recente » Cod sursa (job #792774) | Cod sursa (job #1412894) | Cod sursa (job #1484434) | Cod sursa (job #2200175) | Cod sursa (job #1017103)
#include <stdio.h>
#include <vector>
using namespace std;
FILE *f=fopen("sortaret.in","r");
FILE *g=fopen("sortaret.out","w");
vector<int>l[50005],c;
int n,m,x,y,i,use[50005],v[50005],nr;
void df(vector<int>c,int i)
{
use[i]=1;
for (vector<int>::iterator it=c.begin();it!=c.end();++it,use[*it]==0)
{
if (use[*it]==0)df(l[*it],*it);
}
v[++nr]=i;
}
int main()
{
fscanf(f,"%d%d",&n,&m);
for(i=1;i<=m;i++)
{
fscanf(f,"%d%d",&x,&y);
l[x].push_back(y);
}
for(i=1;i<=n;i++)
if (use[i]==0)df(l[i],i);
for(i=n;i>=1;i--)
fprintf(g,"%d ",v[i]);
fclose(g);
return 0;
}