Cod sursa(job #524923)

Utilizator tudorsTudor Siminic tudors Data 23 ianuarie 2011 16:43:02
Problema Sortare topologica Scor 60
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;

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

int n,m,i,j,k;
int VIZ[50100],D[50100];
vector <int> M[50100];

void citire()
{
	int a,b;
	f>>n>>m;
	for (i=1;i<=m;i++)
	{
		f>>a>>b;
		M[a].push_back(b);
		D[b]++;
	}
}

void rezolva_si_scrie()
{
	for (i=1;i<=n;i++)
	{
		for (j=1;j<=n;j++)
			if (!VIZ[j] && D[j]==0)
			{
				VIZ[j]=1;
				g<<j<<" ";
				for (k=0;k<M[j].size();k++)
					D[M[j][k]]--;
				break;
			}
	}
}

int main()
{
	citire();
	rezolva_si_scrie();
	f.close();
	g.close();
	return 0;
}