Pagini recente » Monitorul de evaluare | Cod sursa (job #2636787) | Cod sursa (job #612899) | Cod sursa (job #60996) | Cod sursa (job #2226102)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("sortaret.in");
ofstream fout ("sortaret.out");
int n, m;
int f[50005];
vector <int> answer;
vector <int> graph[50005];
void topologicalSorting(int node)
{
for ( auto x:graph[node] )
if ( f[x] == 0 )
topologicalSorting(x);
f[node] = 1;
answer.push_back(node);
}
int main()
{
fin>>n>>m;
for ( int i = 1; i <= m; ++i )
{
int first_Node, second_Node;
fin>>first_Node>>second_Node;
graph[first_Node].push_back(second_Node);
}
for ( int i = 1; i <= n; ++i )
{
if ( f[i] == 0 )
topologicalSorting(i);
}
for ( int i = n-1; i >= 0; --i )
fout<<answer[i]<<" ";
}