Cod sursa(job #1851916)

Utilizator abccnuCamelia Zalum abccnu Data 20 ianuarie 2017 12:01:59
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;


ifstream f("sortaret.in");
ofstream fout("sortaret.out");

const int MM=100003;

int m , n;
vector <int> lista[50000] ;
int  sol[MM],l;

bool ver(int nod)
{
    for (int i=1; i<=n; ++i)
        if (sol[i]==nod)return false;
    return true;
}

void dfs(int nod)
{
    sort(lista[nod].begin(), lista[nod].end());
    for (int i=0; i<lista[nod].size(); ++i)
    {
        if (ver(lista[nod][i]))
        {
            sol[++l]=lista[nod][i];
            dfs(lista[nod][i]);
        }
    }
}


int main()
{
   f>>n>>m;
   int x, y;
int i;
   for (i=1; i<=n; ++i)
   {
       f>>x>>y;
       lista[x].push_back(y);

   }
   sol[++l]=1;
   dfs(1);
for (i=1; i<=l; ++i)
    fout<<sol[i]<< " ";
    return 0;
}