Cod sursa(job #1702116)

Utilizator adrian.popoviciPopovici Adrian adrian.popovici Data 14 mai 2016 15:44:12
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include<iostream>
#include <vector>
#include <fstream>
using namespace std;
vector <vector <long> > graf;
vector <bool> visited;
vector <long> Array;
long n,m;
void DFS (long x)
{
    visited[x]=true;
    Array.push_back(x);
    for (long i=0;i<graf[x].size();i++)
    {
        if(visited[graf[x][i]]==false)
        {
            DFS(graf[x][i]);
            //Array.push_back(graf[x][i]);
        }
    }
}
void Citire ()
{
    ifstream f ("sortaret.in");
    f>>n>>m;
    graf.resize(n);
    visited.resize(n, false);
    for (long i=0;i<m;i++)
    {
        long x,y;
        f>>x>>y;
        x--;
        y--;
        graf[x].push_back(y);
    }
}

int main ()
{
    Citire();
    for (long i=0;i<n;i++)
        if (visited[i]==false)
            {
                DFS(i);
                //Array.push_back(i);
            }
    ofstream g("sortaret.out");
    for (long i=0;i<Array.size();i++)
    {
        //cout<<Array[i]+1<<" ";
        g<<Array[i]+1<<" ";
    }
    g.close();
    return 0;
}