Pagini recente » Cod sursa (job #5217) | Cod sursa (job #2586126) | Cod sursa (job #1037860) | Cod sursa (job #2340413) | Cod sursa (job #928136)
Cod sursa(job #928136)
#include <stdio.h>
#include <list>
using namespace std;
list<int> G[100005],ST;
bool viz[100005];
int N,M;
void cit()
{
scanf("%d %d\n",&N,&M);
int a,b,i;
for (i=1;i<=M;i++)
{
scanf("%d %d\n",&a,&b);
G[a].push_back(b);
}
}
void dfs(int p)
{
viz[p]=1;
list<int>:: iterator it;
for (it=G[p].begin();it!=G[p].end();++it)
if (!viz[*it])
dfs(*it);
ST.push_front(p);
}
void rez()
{
int i;
for (i=1;i<=N;i++)
if (!viz[i])
dfs(i);
list<int>:: iterator it;
for (it=ST.begin();it!=ST.end();++it)
printf("%d ",*it);
printf("\n");
}
int main()
{
freopen ("sortaret.in","r",stdin);
freopen ("sortaret.out","w",stdout);
cit();
rez();
fclose(stdin);
fclose(stdout);
return 0;
}