Cod sursa(job #1662491)

Utilizator anav23Ana Vasiliu anav23 Data 24 martie 2016 19:54:50
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

vector<int> succ[50002];
int grad[50002],nSucc[50002];

int main()
{
    ifstream fin("sortaret.in");
    ofstream fout("sortaret.out");
    int n,m,c1,c2;
    fin>>n>>m;
    for(int i=0;i<m;i++) {
        fin>>c1>>c2;
        grad[c2]++;
        nSucc[c1]++;
        succ[c1].push_back(c2);
    }
    int elem=0,rasp[50002];
    while(elem<n) {
        for(int i=1;i<=n;i++) {
            if(grad[i]==0)  {
                rasp[elem]=i;
                elem++;
                for(int j=0;j<nSucc[i];j++)
                    grad[succ[i][j]]--;
            }
        }
    }
    for(int i=0;i<n;i++)
        fout<<rasp[i]<<" ";
    return 0;
}