Решение задачи Минимальный каркас с Acmp

Без пояснения   Просмотров: 12



Код


    #include <iostream>

using namespace std;

int main(){

	int n,m,i,j,k,c0,c1,d,p=0;

	cin>>n>>m;

	int r[m][3],c[n+1];

	for(k=0; k<m; ++k)

		cin>>r[k][0]>>r[k][1]>>r[k][2];

	for(i=1; i<=n; ++i)c[i]=i;

	for(i=0; i<n-1; ++i){

		d=30001;

		for(k=0; k<m; ++k)

			if(c[r[k][0]]!=c[r[k][1]]&&r[k][2]<d){

				d=r[k][2];j=k; }

			p+=d;

			c0=c[r[j][0]];

			c1=c[r[j][1]];

		for(j=1;j<=n; ++j)if(c[j]==c1)c[j]=c0;}

		cout<<p;

return 0;}   
        

         

Администратор Photo Автор: Администратор



Комментарии

Чтобы написать комментарии вам нужно войти в систему или зарегистрироваться