Cod sursa(job #2343081)

Utilizator Alex.PAlexandru Pacurar Alex.P Data 13 februarie 2019 17:54:28
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <stdio.h>
#include <stdlib.h>
#include <vector>

using namespace std;

vector <int> v[50001];
int seen[50001];
int q[50001];
int poz = 0;

void sort(int node){
    seen[node] = 1;
    int i;
    printf("%d -> %d\n",node,v[node].size());
    for(i = 0; i < v[node].size(); i++){
        if(!seen[v[node][i]])
            sort(v[node][i]);
    }
    q[poz]=node;
    poz++;
}

int main()
{
    FILE *fin, *fout;
    fin = fopen("sortaret.in","r");
    fout = fopen("sortaret.out","w");
    int n, m, i, j, k;
    fscanf(fin,"%d%d",&n,&m);
    for(m; m > 0; m--){
        fscanf(fin,"%d%d",&i,&j);
        v[i].push_back(j);
    }
    for(i = 1; i <= n; i++){
        if(!seen[i])
            sort(i);
    }
    poz--;
    for(poz; poz >= 0; poz--){
        fprintf(fout,"%d ",q[poz]);
    }
    fclose(fin);
    fclose(fout);
    return 0;
}