Cod sursa(job #2096200)

Utilizator DimaTCDima Trubca DimaTC Data 28 decembrie 2017 19:30:26
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include<fstream>
#include<vector>

#define NMAX 50100

using namespace std;

int n,m,x,y;
bool viz[NMAX];
vector<int> V[NMAX];
int V2[NMAX];

ifstream cin("sortaret.in");
ofstream cout("sortaret.out");

void DFS(int x) {
	cout<<x<<" ";
	viz[x]=1;
	
	for (int i=0; i<V[x].size(); i++) {
		if (!viz[V[x][i]] && V2[V[x][i]]<=1) {
			DFS(V[x][i]);
		} else if (V2[V[x][i]]>1) V2[V[x][i]]--;
	}
}

int main() {
	
	cin>>n>>m;
	
	for (int i=1; i<=m; i++) {
		cin>>x>>y;
		V2[y]++;
		V[x].push_back(y);
		
	}
	
	for (int i=1; i<=n; i++) {
		if (!viz[i] && V2[i]==0) {
			DFS(i);
		}
	}
	
	return 0;
}