Cod sursa(job #2139303)

Utilizator dragosmihuDragos Mihu dragosmihu Data 22 februarie 2018 13:20:36
Problema Sortare topologica Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include<bits/stdc++.h>

using namespace std;
ifstream fin("sortaret.in");
ofstream fout("sortaret.out");
int sol[10001], n,m, p=0, viz[10001];
vector<int> L[10001];

void DFS_TF(int k)
{	viz[k]=1;
	for(auto i : L[k])
		if(viz[i]==0) DFS_TF(i);
	sol[++p] = k;
}

void SortareTopologica()
{
	int i;
	for (i = 1; i <= n; i++)
		if (viz[i] == 0)
			DFS_TF(i);
	for (i = n; i >= 1; i--)
		fout << sol[i] << " ";
}
int main()
{
    int i,x,y;
    fin>>n>>m;
    for(i=1;i<=m;i++)
    {
        fin>>x>>y;
        L[x].push_back(y);
    }
    SortareTopologica();
    return 0;
}