Cod sursa(job #2034437)

Utilizator xRoALexBirtoiu Alexandru xRoALex Data 7 octombrie 2017 20:09:51
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <cstdio>
#define N 100000
#include <vector>
using namespace std;

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

int n,m;
vector<int> rasp,v;
vector<int> G[N];
int fv[N];


int main()
{
    fscanf(f,"%d%d",&n,&m);
    for(int i=1;i<=m;i++)
    {
        int x,y;
        fscanf(f,"%d%d",&x,&y);
        G[x].push_back(y);
        fv[y]++;
    }
    for(int i=1;i<=n;i++)
        if(fv[i] == 0)
            v.push_back(i);
    while(!v.empty())
    {
        int x=v.back();
        fprintf(g,"%d ",x);
        v.pop_back();
        for(auto it: G[x])
            {
            if(fv[it]==1)
                        v.push_back(it);
            fv[it]--;
            }
    }

    return 0;
}