Cod sursa(job #877986)

Utilizator BarracudaFMI-Alex Dobrin Barracuda Data 13 februarie 2013 17:31:22
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream>
#include<vector>
#define dim 50007

using namespace std;

ifstream f("sortaret.in");
ofstream g("sortaret.out");

vector<int> L[dim];
int pred[dim],s[dim],x,y,n,m,i,j;
int main (){

    f>>n>>m;

    for(i=1;i<=m;++i){

        f>>x>>y;

        L[x].push_back(y);
        ++pred[y];

    }


    for(i=1;i<=n;++i){
        if(pred[i]==0){
            s[++s[0]]=i;
        }

    }

    for(i=1;i<=n;i++) {

        x=s[i];
        for(j=0;j<L[x].size();++j){

            --pred[L[x][j]];
            if(pred[L[x][j]]==0) {
                s[++s[0]]=L[x][j];


            }

        }
    }
    for(i=1;i<=n;++i){
        g<<s[i]<<" ";
    }
    return 0;
}