Pagini recente » Cod sursa (job #1673164) | Cod sursa (job #1975593) | Cod sursa (job #54806) | Cod sursa (job #1741594) | Cod sursa (job #1491177)
# include <cstdio>
# include <vector>
# define NMAX 50001
# define MMAX 100001
using namespace std;
FILE *f=freopen("sortaret.in","r",stdin);
FILE *g=freopen("sortaret.out","w",stdout);
int q[NMAX] , grad[NMAX];
vector <int> v[NMAX];
int n,m;
void sortaret()
{
int i;
for (i=1;i<=n;i++)
if (!grad[i]) q[++q[0]]=i;
for (i=1;i<=n;i++)
{
int nod=q[i];
for (vector <int> :: iterator it=v[nod].begin(); it!=v[nod].end();it++)
{
grad[*it]--;
if (!grad[*it]) q[++q[0]]=*it;
}
}
}
int main()
{
int x,y,i;
scanf("%d%d",&n,&m);
for (i=1;i<=m;i++)
{
scanf("%d%d",&x,&y);
v[x].push_back(y); grad[y]++;
}
sortaret();
for (i=1;i<=n;i++) printf("%d ",q[i]);
return 0;
}