Cod sursa(job #509095)

Utilizator eudummyEduard eudummy Data 10 decembrie 2010 13:46:55
Problema Sortare topologica Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.76 kb
#include <fstream>
#include <stdio.h>
using namespace std;
int main()
{
	long a[100001][2],n,m,i,k,aux,j;
	int viz[50001];
	ifstream f ("sortaret.in");
	freopen("sortaret.out", "wt", stdout);
	f>>n>>m;
	for (i=0;i<m;i++)
		f>>a[i][0]>>a[i][1];
	for (i=0;i<m-1;i++)
		for (j=i+1;j<m;j++)
			if ((a[i][0]*50000+a[i][1])>(a[j][0]*50000+a[j][1]))
			{
				aux=a[i][0];
				a[i][0]=a[j][0];
				a[j][0]=aux;
				aux=a[i][1];
				a[i][1]=a[j][1];
				a[j][1]=aux;
			}
	i=0;k=0;
	while ((i<m)&&(k<n))
	{
		if (viz[a[i][0]]==0)
		{
			viz[a[i][0]]=1;
			printf("%ld ",a[i][0]);
			k++;
		}
		if (viz[a[i][1]]==0)
		{
			viz[a[i][1]]=1;
			printf("%ld ",a[i][1]);
			k++;
		}
		i++;
	}
	for (i=1;i<=n;i++)
		if (!viz[i])
			printf("%d ",i);
}