Cod sursa(job #966238)

Utilizator dropsdrop source drops Data 25 iunie 2013 15:39:02
Problema Sortare topologica Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.62 kb
#include <iostream>
#include <fstream>
#include <vector>
#include <queue>
#include <deque>
#include <list>
#include <string>
#include <algorithm>
using namespace std;
ifstream ff("sortaret.in");
ofstream gg("sortaret.out");

int n, m, qq[50001], k;
vector<int> vv[50001];
bool ww[50001];

void dfs(int x){
	ww[x]=1;
	for(int i=0;i<vv[x].size();i++)
	if(!ww[vv[x][i]]) dfs(vv[x][i]);
	qq[k++]=x;
}

int main(){
	int x, y;
	ff >> n >> m;
	for(int i=0;i<m;i++){
		ff >> x >> y;
		vv[x].push_back(y);
	}
	for(int i=1;i<=n;i++)
	if(!ww[i]) dfs(i);
	for(int i=k-1;i>=0;i--) gg << qq[i] << " ";
	return 0;
}