Cod sursa(job #1879650)

Utilizator Liviu_Ionut_MoantaMoanta Ionut Liviu Liviu_Ionut_Moanta Data 15 februarie 2017 08:33:28
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>
#include<vector>
using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
vector<int >L[50005];
int v[50005],sol[50005],f[50005];
int n,m,a,b,q1,i,j,k;
int maxim;
void dfs(int nod){
    v[nod]=1;
    for(int i=0;i<L[nod].size();i++){
        int fiu=L[nod][i];
        if(v[fiu]==0){
            dfs(fiu);
        }
    }
    sol[++k]=nod;
}
int main(){
    fin>>n>>m;
    for(i=1;i<=m;i++){
        fin>>a>>b;
        L[a].push_back(b);
        f[b]=1;
    }
    for(i=1;i<=n;i++){
        if(f[i]==0){
            dfs(i);
        }
    }
    for(i=1;i<=k;i++){
        fout<<sol[k-i+1]<<" ";
    }
    return 0;
}