Cod sursa(job #1764054)

Utilizator DoubleNyNinicu Cristian DoubleNy Data 24 septembrie 2016 22:21:41
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <bits/stdc++.h>
using namespace std;


vector <int> adj[50001];
int visited[50001];
int n,m;
vector <int> result;

void DFS(int v)
{
    visited[v] = 1;
    //cout << v << ' ';
    for(int i=0;i<adj[v].size();i++)
        if(!visited[adj[v][i]])
            DFS(adj[v][i]);
    result.push_back(v);
}

int main ()
{
    ios_base::sync_with_stdio(0);
    ifstream fin("sortaret.in");
    ofstream fou("sortaret.out");

    fin >> n >> m;
    for(int i=1; i<=m; i++)
    {
        int a,b;
        fin >> a >> b;
        adj[a].push_back(b);
    }
    for (int nod=1;nod<=n;nod++)
        if(!visited[nod])
            DFS(nod);
    for (int i = n - 1; i >= 0; i--) {
        fou << result.at(i) << " ";
    }
}