Cod sursa(job #2333905)

Utilizator catalina200029Olteanu Catalina catalina200029 Data 2 februarie 2019 09:26:45
Problema Sortare topologica Scor 0
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.61 kb
#include <bits/stdc++.h>
#define NMAX 50005

using namespace std;

vector<int> v[NMAX];

FILE*f=fopen("sortaret.in","r");
FILE*g=fopen("sortaret.out","w");

int n,m,x,y,viz[NMAX],st[NMAX],nr;

void df(int k) {
    int i;
    viz[k]=1;
    for (i=0;i<v[k].size();i++)
        if (!viz[v[k][i]]) df(v[k][i]);
    st[++nr]=k;
}

int main() {
    int i;
    fscanf(f,"%d%d",&n,&m);
    for (i=1;i<=n;++i) {
        fscanf(f,"%d%d",&x,&y);
        v[x].push_back(y);
    }
    for (i=1;i<=n;i++)
        if (!viz[i]) df(i);
    for (i=nr;i>=1;i--)
        fprintf(g,"%d ",st[i]);
    return 0;
}