Cod sursa(job #2354329)

Utilizator FlorianMarcuMarcu Florian Cristian FlorianMarcu Data 25 februarie 2019 10:43:31
Problema Sortare topologica Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.84 kb
// sortare_topologica.cpp : This file contains the 'main' function. Program execution begins and ends there.
//

//#include "pch.h"
#include <iostream>
#include <fstream>
#include <vector>
#include <list>
using namespace std;

ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int viz[50000],n,m;
list<int> G[50000];
list<int> l;
void adancime(int k)
{

	viz[k] = 1;
	for (list<int>::iterator i = G[k].begin(); i != G[k].end(); i++)
	{
		if (!viz[*i])
			adancime(*i);

	}
	l.push_front(k);
}
void sort_topologica()
{
	for (int i = 1; i <= n; i++)
		if (!viz[i])
			adancime(i);

}

int main()
{
	vector<int> v;
	fin >> n >> m;
	
	list<int>::iterator k;
	
	int i, j;
	while (fin >> i >> j)
	{
		G[i].push_front(j);
	}
	sort_topologica();
	for (k = l.begin(); k != l.end(); k++)
		fout << *k<<" ";
}