Cod sursa(job #538269)

Utilizator GaborGabrielFMI - GabrielG GaborGabriel Data 20 februarie 2011 23:17:59
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream.h>
ifstream f("sortaret.in");
ofstream g("sortaret.out");
int n,m,Matrice[101][101],gri[100];

//aduna toate valorile de pe linia i
int max(int i)
{
	int suma=0;
	for(int j=1;j<=n;j++)
		if(Matrice[j][i]==1)
			suma++;
		return suma;
}

int main()
{
	int i,j,x,y;	
	f>>n>>m;
	for(i=1;i<=m;i++)
	{
		f>>x>>y;	
		Matrice[x][y]=1;				
	}	
	for(i=1;i<=n;i++)
		gri[i]=max(i);
	int nr=0;		
	while(nr!=n)
	{		
		for(int i=1;i<=n;i++)
			//Daca gasesc 0, atunci merg in matrice pe linia punctului unde am gasit zero si fiecarui vecin ii fac -- in gri;
			if(gri[i]==0)
			{
				g<<i;
				for(int j=1;j<=n;j++)
					if(Matrice[i][j]==1)
					{
						gri[j]--;
						Matrice[i][j]=0;
					}
				gri[i]=-1;				
			}
		nr++;
	}	
}