Pagini recente » Cod sursa (job #865020) | Cod sursa (job #1899571) | Cod sursa (job #1385550) | Cod sursa (job #1288329) | Cod sursa (job #918068)
Cod sursa(job #918068)
#include<stdio.h>
#include<vector>
#include<list>
using namespace std;
#define max 100
int nrd,nrn,grad[max];
list<int> solved[max];
bool visited[max];
void Visit(int node)
{
list<int>::iterator it;
for(it=solved[node].begin(); it!=solved[node].end(); it++)
if( !visited[*it] )
Visit(*it);
visited[node]=1;
solved[0].push_front(node);
}
void Solve(void)
{
for(int i=1; i<=nrn; i++)
if( !visited[i] )
Visit(i);
}
void Read_Data(void)
{
scanf("%d %d",&nrn,&nrd);
int x,y;
for(int i=1; i<=nrd; i++)
{
scanf("%d %d",&x,&y);
solved[x].push_back(y);
grad[x]++;
}
}
void Print_Resault()
{
for(list<int>::iterator i=solved[0].begin(); i!=solved[0].end(); i++)
printf("%d ",*i);
}
int main(void)
{
freopen("sortaret.in","r",stdin);
freopen("sortaret.out","w",stdout);
Read_Data();
Solve();
Print_Resault();
return 0;
}