Cod sursa(job #1754433)

Utilizator cosmin004Manolescu Cosmin cosmin004 Data 8 septembrie 2016 10:14:22
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <iostream>
#include <fstream>
#include <vector>
#define Max_N 50000
using namespace std;
int n,m,a[Max_N],k=0;
vector<int> v[Max_N];
bool valid[Max_N];
ifstream f("sortaret.in");
ofstream g("sortaret.out");
void citire()
{
    int a,b;
    f>>n>>m;
    for(int i = 1 ; i <= m ; i++)
    {
        f>>a>>b;
        v[a].push_back(b);
    }
    for(int i = 1 ; i <= n ; i++)
        valid[i] = false;
}

void sortaret(int nod)
{
    valid[nod] = true;
    k++;
    a[k] = nod;
    for(int i = 0 ; i < v[nod].size() ; i++)
        if(valid[v[nod][i]]==false)
            sortaret(v[nod][i]);
}
int main()
{
    citire();
    for(int i = 1 ; i<= n ; i++)
        if(valid[i] == false)
            sortaret(i);
    for(int i = 1 ; i<= n ; i++)
        g<<a[i]<<' ';
    return 0;
}