Cod sursa(job #2354768)

Utilizator cristii2000cristiiPanaite Cristian cristii2000cristii Data 25 februarie 2019 16:10:31
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.83 kb
#include <fstream>

#include<vector>

#include<queue>

using namespace std;

ifstream f("sortaret.in");

ofstream g("sortaret.out");

int n,m,x,y,i;

int nr[50001];

vector <int> v[50001];

queue <int> Q;

void citire()

{

    f>>n>>m;

    while(m--)

    {

        f>>x>>y;

        v[x].push_back(y);

        nr[y]++;

    }

}

void sortaret1()

{

    int i;

    for(i=1;i<=n;i++)

        if(nr[i]==0)

            Q.push(i);

    while(!Q.empty())

    {

        int old_node=Q.front();

        Q.pop();

        g<<old_node<<" ";

        int l=v[old_node].size();

        for(i=0;i<l;i++)

        {

            int new_node=v[old_node][i];

            nr[new_node]--;

            if(nr[new_node]==0)

                Q.push(new_node);

        }



    }



}

int main()

{

    citire();

    sortaret1();

    return 0;

}