Cod sursa(job #2406559)
Utilizator | Data | 15 aprilie 2019 21:18:29 | |
---|---|---|---|
Problema | Sortare topologica | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.62 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream in("sortaret.in");
ofstream out("sortaret.out");
#define NMAX 50002
vector <int>g[NMAX],sol;
int viz[NMAX];
int n,m;
void dfs_t(int node){
if(viz[node])
return;
viz[node]=1;
for(auto y:g[node])
dfs_t(y);
sol.push_back(node);
}
int main()
{
in>>n>>m;
for(int i=1;i<=m;i++){
int x,y;
in>>x>>y;
g[x].push_back(y);
}
dfs_t(1);
for(int i=1;i<=n;i++){
if(!viz[i])
dfs_t(i);
}
for(int i=sol.size()-1;i>=0;i--)
out<<sol[i]<<" ";
return 0;
}