Cod sursa(job #2663365)

Utilizator Razvank206Dumitriu Razvan Razvank206 Data 26 octombrie 2020 10:41:16
Problema Sortare topologica Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.78 kb
#include<fstream>
#include<vector>
#include<cstring>
#include <stack>

using namespace std;

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

void ST(vector<int>A[], int n, int viz[], stack<int>& s) {
	viz[n] = 1;
	for (int i = 0; i < A[n].size(); ++i) {
		if (viz[A[n][i]] == 0) {
			ST(A, A[n][i], viz, s);
		}
	}
	s.push(n);

}

int main()
{
	int n, m, x, y, nod, viz[100001];
	vector<int>A[100001];
	stack<int>s;
	f >> n >> m;
	for (int i = 0; i < m; ++i) {
		f >> x >> y;
		A[x].push_back(y);
	}
	memset(viz, 0, sizeof(viz));
	//for(int i=0; i<sizeof(viz); ++i)
      //  viz[i]=0;

	for (int i = 1; i <= n; ++i) {
		if (viz[i] == 0) {
			ST(A, i, viz, s);
		}
	}
	for(int i = 0; i < n; ++i) {
		g << s.top() << " ";
		s.pop();
	}
	return 0;
}