Cod sursa(job #3003544)

Utilizator begusMihnea begus Data 15 martie 2023 19:42:24
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.63 kb
#include <bits/stdc++.h>
using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");

const int NMAX = 5e4+1;

vector<int> adj[NMAX];
int n, m, x, y, id[NMAX];
bool written[NMAX];

void dfs(int s){
    if(id[s]==0){
        fout << s << ' ';
        written[s] = true;
    }else{
        return;
    }
    for(auto u : adj[s]){
        if(written[u]) continue;
        id[u]--;
        dfs(u);
    }
}

int main(){
    fin >> n >> m;
    while(fin >> x >> y){
        adj[x].push_back(y);
        id[y]++;
    }
    for(int i=1; i<=n; i++){
        if(id[i]==0 && !written[i]) dfs(i);
    }
}