Cod sursa(job #2060805)

Utilizator danielsociuSociu Daniel danielsociu Data 8 noiembrie 2017 18:49:30
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>
#include <iostream>
#include <vector>
using namespace std;
//ifstream cin("sortaret.in");
//ofstream cout("sortaret.out");

void rezolvare(vector<int> data[], int n,int ex[500],int i=1){
    if(i<=n){
        if(ex[i]!=1){
             ex[i]=1; cout<<i<<" "; rezolvare(data,n,ex,i);
           }
        else if(data[i].size()>0){
            while(data[i].size()>0){
                rezolvare(data,n,ex,data[i].front());
                data[i].erase(data[i].begin());
            }
        }
    }
}

int main(){
    int n,m,a,b,j=1;
    cin>>n>>m;
    int ex[n+1];
    vector<int> data[n+1];
    for(int i=1;i<=m;i++){
        cin>>a>>b; data[a].push_back(b);
    }
    rezolvare(data,n,ex,j);
    for(int i=1;i<=n;i++){
        if(ex[i]!=1)
            cout<<i<<" ";
    }
    return 0;
}