Cod sursa(job #2405891)

Utilizator alex2209alexPavel Alexandru alex2209alex Data 15 aprilie 2019 09:59:58
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 1.1 kb
#include <bits/stdc++.h>

using namespace std;
ifstream f("sortaret.in");
ofstream g("sortaret.out");
//--------------------------------------------------
//Variabile globale
int n,st[50001],ap[50001],nr;
vector<int>v[50001];
//--------------------------------------------------
//Functii
void citire();
void rezolva();
//--------------------------------------------------
int main()
{
	citire();
	rezolva();
	return 0;
}
//--------------------------------------------------
void afiseaza()
{
	for(int i = 1; i <= n;++i)
		g << st[i] << " ";
}
//--------------------------------------------------
void dfs(int nod)
{
	ap[nod]=1;
	for(int i = 0; i < v[nod].size(); ++i)
		if(!ap[v[nod][i]])
		{
			ap[v[nod][i]]=1;
			dfs(v[nod][i]);
		}
	st[nr]=nod;
	nr--;
}
//--------------------------------------------------
void rezolva()
{
    nr = n;
	for(int i = 1; i <= n; ++i)
		if(!ap[i])
			dfs(i);
	afiseaza();
}
//--------------------------------------------------
void citire()
{
	int m;
	f >> n >> m;
	while(m--)
	{
	    int a,b;
		f >> a >> b;
		v[a].push_back(b);
	}
}