Cod sursa(job #663791)

Utilizator kkkarla5Martin Carla - Maria kkkarla5 Data 18 ianuarie 2012 22:29:21
Problema Arbore partial de cost minim Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.91 kb
#include<stdio.h>
#include<fstream.h>
#include<iostream.h>

struct muchie{
	int cap1,cap2,cost,selectat;
};
int v[100];	
muchie a[100],mm,aux;
int n,m,x,y,i,c,conex[100],s,ok,j,auxx;

int main()
{
	ifstream f("apm.in");
	ofstream g("apm.out");
	f>>n;   f>>m;
	for (i=1;i<=m;i++){ 
		f>>a[i].cap1;
		f>>a[i].cap2;
		f>>a[i].cost;
	}
	
	for (i=1;i<=n;i++) 
		conex[i]=i;
	
	for(i=1;i<m;i++)
		for(j=i+1;j<=m;j++)
			if(a[i].cost>a[j].cost){
			aux=a[i];
			a[i]=a[j];
			a[j]=aux;
			}
	
for (i=1;i<=m;i++) {
mm=a[i];
if (conex[mm.cap1]!=conex[mm.cap2]) {
	a[i].selectat=1;
	auxx=conex[mm.cap2];
	for (j=1;j<=n;j++)
		if (conex[j]==auxx) 
			conex[j]=conex[mm.cap1];
}
}
s=0;
int nod=0;
for (i=1;i<=m;i++) 
	if (a[i].selectat==1) 
	{s=s+a[i].cost;
	nod++; }
g<<s<<endl<<nod<<endl;
for (i=1;i<=m;i++) 
	if (a[i].selectat==1) 
		g<<a[i].cap1<<" "<<a[i].cap2<<endl;

return 0;
}