Cod sursa(job #1725604)

Utilizator marius25cCretu Marius marius25c Data 6 iulie 2016 00:06:46
Problema Sortare topologica Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include <iostream>
#include <fstream>
#include <vector>

#define NMAX 50005
#define pb push_back

using namespace std;

ifstream g("sortaret.in");
ofstream gg("sortaret.out");

vector < int > V[ NMAX ];

int N,M;
int viz[ NMAX ], deg[ NMAX ];

void Read(){
    int a,b,i;
    g>> N>> M;
    for( int i=1; i<=M; i++){
        g>> a>> b;
        V[ a ].pb(b);
        deg[b]++;
    }
}

void solve(void)
{
    int i, j, k;

    for(i = 1; i <= N; i++)
    {
        for(j = 1; j <= N; j++)
         if(!viz[j] && deg[j] == 0)
         {
            viz[j] = 1, gg<<j<<" ";
            for(k = 0; k < V[j].size(); k++)
                deg[ V[j][k] ]--;
            break ;
         }
    }
}
int main(void){
    Read();
    solve();
    return 0;
}