Pagini recente » Cod sursa (job #2175520) | Cod sursa (job #2961961) | Cod sursa (job #1875690) | Cod sursa (job #2278559) | Cod sursa (job #2664679)
#include <iostream>
#include <list>
#include <fstream>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
list <int> sortaret;
void dfs(int start, list<int> ad[],int visited[], int f[], int &d)
{
d ++;
visited[start] = 1;
for(auto &child : ad[start])
{
if(visited[child] == 0)
dfs(child,ad,visited,f,d);
}
f[start] = ++ d;
sortaret.push_front(start);
}
int main()
{
int n,m,start;
fin>>n>>m;
list <int> ad[n+1];
for(int i = 0; i < m; i ++)
{
int x,y;
fin >> x >> y;
ad[x].push_back(y);
}
int visited[n+1]= {0};
int f[n+1] = {0};
int d = 0;
for(int i=1; i<=n; i++)
if(visited[i] == 0)
{
start = i;
dfs(start,ad,visited,f,d);
}
for(auto it = sortaret.begin();it!=sortaret.end();it++)
fout << *it <<" ";
return 0;
}