Cod sursa(job #1128211)

Utilizator bogdanrusRus Bogdan bogdanrus Data 27 februarie 2014 16:04:27
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <cstdio>
#include <cstring>
#include <vector>
using namespace std;

#define NMax 50000

int M, N, Viz[NMax], Grad[NMax];
vector<int> G[NMax];

void sortare () {	

	int i, j, k;
	
	for(i = 1; i<=N; ++i) {
		for(j = 1; j<=N; ++j) {
			if(Grad[j]==0 && Viz[j]==0) {
				Viz[j]=1;
				printf("%d ",i);
				for (k=0; k<G[i].size(); ++k) 
					Grad[G[j][k]]--;
				break;
			}
		}
	}

}


int main (void) {
	
	int p,i,j;
		
	freopen("sortaret.in","r",stdin);
	freopen("sortaret.out","w",stdout);
	
	scanf("%d %d", &N, &M); 
	
	
	for (p = 1; p<=M; ++p) {
		scanf("%d %d",&i, &j);
		Grad[j]++;
		G[i].push_back(j);
	}
		
	sortare();

return 0;
}