Pagini recente » Cod sursa (job #1933392) | Cod sursa (job #1253536) | Cod sursa (job #1040258) | Cod sursa (job #2377244) | Cod sursa (job #2940421)
#include <bits/stdc++.h>
#define N 50007
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m;
vector<int>a[N];
vector<int> ordine(N,0);
bitset<N> viz;
int poz;
void Citire()
{
fin >> n >> m;
for(int i=1;i<=m;i++)
{
int x,y;
fin >> x >> y;
a[x].push_back(y);
}
fin.close();
}
void DFS(int x)
{
viz[x]=1;
for(auto y:a[x])
if( !viz[y] )
DFS(y);
ordine[poz--]=x;
}
void Sortare_Topologica()
{
poz=n;
for(int i=1;i<=n;i++)
if( !viz[i] )
{
DFS(i);
}
for(int i=1;i<=n;i++)
fout << ordine[i] << " ";;fout <<"\n";fout.close();
}
int main()
{
Citire();
Sortare_Topologica();
return 0;
}