Cod sursa(job #1436367)

Utilizator ovidiuz98Zamfir Ovidiu ovidiuz98 Data 15 mai 2015 20:02:56
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include <fstream>
#include <vector>
#define DIM 50002
using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int n,m;
vector <int> v[DIM];
int viz[DIM],S[DIM],k,d[DIM];
void DFS(int x){
    viz[x]=1;
    for(int i=0;i<v[x].size();i++)
        if(!viz[v[x][i]]){
            DFS(v[x][i]);
        }
    S[++k] = x;

}
int main(){
    fin>>n>>m;
    while(m--){
        int x,y;
        fin>>x>>y;
        v[x].push_back(y);
        d[y]++;
    }

    for (int i=1;i<=n;i++)
        if (d[i] == 0)
            DFS(i);
    for (int i=k;i>=1;i--)
        fout<<S[i]<<" ";
    fin.close();fout.close();
    return 0;
}