Pagini recente » Cod sursa (job #1172598) | Cod sursa (job #2837210) | Cod sursa (job #1644066) | Cod sursa (job #1504243) | Cod sursa (job #1050798)
#include <stdio.h>
#include <cstring>
#include <vector>
using namespace std;
#define NLEN 50001
vector <int> g[NLEN];
int v[NLEN];
int use[NLEN];
void dfs(int node)
{
use[node]=1;
for(vector <int>::iterator it=g[node].begin();it!=g[node].end();++it)
if(!use[*it])
dfs(*it);
v[++v[0]]=node;
}
int main()
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
memset(v,0,sizeof(v));
memset(use,0,sizeof(use));
int N,M;
scanf("%d%d",&N,&M);
while(M--)
{
int x,y;
scanf("%d%d",&x,&y);
g[x].push_back(y);
}
for(int i=1;i<=N;++i)
if(!use[i])
dfs(i);
for(int i=N;i>0;--i)
printf("%d ",v[i]);
printf("\n");
return 0;
}