Cod sursa(job #415623)

Utilizator liviu12345Stoica Liviu liviu12345 Data 11 martie 2010 17:00:34
Problema Sortare topologica Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include<fstream.h>
#include<vector>
#define maxn 100001

using namespace std;
vector < vector < int > > lista;
int sel[ maxn ],coada[maxn],n,m;
int main()
{
	int i,j,k;
	ifstream f ("sortaret.in");
	ofstream g ("sortaret.out");
	f>>n>>m;
	
	vector < int > temp;
	for( int i = 0; i <= n; ++i)
		lista.push_back( temp);
	while (f>>i>>j)
	{
		lista[i].push_back(j);
		sel[j]++;
		//lista[j].push_back(i);
		
	}
	for (i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
		{
			if (sel[j]==0)
			{
				for(k=0;k<lista[j].size();k++)
				{
					sel[lista[j][k]]--;
				}
				sel[j]--;
				coada[i]=j;
				j=n+1;
			}
		}
	}
	for(i=1;i<=n;i++)
		g<<coada[i]<<" ";
	f.close();
	g.close();
	return 0;
	
}