Cod sursa(job #3199393)
Utilizator | Damian Alexandru alexdmn | Data | 1 februarie 2024 16:09:11 |
---|---|---|---|
Problema | Sortare topologica | Scor | 0 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.62 kb |
#include <fstream>
#include <queue>
using namespace std;
int f[50005];
vector <int> g[50005], fa[50005];
vector <int> q;
void dfs(int i)
{
f[i]=1;
for(auto vec : g[i])
{
if(f[i]!=1)
dfs(vec);
}
q.push_back(i);
}
int main()
{
ifstream cin("sortaret.in");
ofstream cout("sortaret.out");
int n, m, a, b;
cin>>n>>m;
for(int i=0;i<m;i++)
{
cin>>a>>b;
g[a].push_back(b);
}
for(int i=1;i<=n;i++)
{
if(fa[i].size()==0)
{
dfs(i);
break;
}
}
while(!q.empty())
{
cout<<q.back()<<" ";
q.pop_back();
}
return 0;
}