Cod sursa(job #3004)

Utilizator ionescu_bogdanIonescu Bogdan-Gabriel ionescu_bogdan Data 20 decembrie 2006 13:34:10
Problema Traseu Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.66 kb
#include <stdio.h>
#include <stdlib.h>

#define nmax 70

int n,m,deg[nmax],a[nmax*nmax],b[nmax*nmax],c[nmax*nmax],ord[nmax*nmax],i,j,k,s;

int fc(const void *a,const void *b)
{
	return c[*(int*)a]-c[*(int*)b];
}

int main()
{
	freopen("traseu.in","r",stdin);
	freopen("traseu.out","w",stdout);

	scanf("%d%d",&n,&m);
	for (i=0;i<m;++i)
		scanf("%d%d%d",a+i,b+i,c+i),deg[a[i]]++,deg[b[i]]++,s+=c[i],ord[i]=i;
	qsort((void*)ord,m,sizeof(ord[0]),fc);

	int ok=0;
	while (!ok)
	{
		ok=1;
		for (i=0;i<m;++i)
			if ((deg[a[ord[i]]]%2)||(deg[a[ord[i]]]%2))
				s+=c[ord[i]],deg[a[ord[i]]]++,deg[a[ord[i]]]++,ok=0;
	}
	printf("%d\n");

	return 0;
}