Cod sursa(job #1007078)

Utilizator x3medima17Dima Savva x3medima17 Data 8 octombrie 2013 10:25:57
Problema Arbore partial de cost minim Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1.22 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin("apm.in");
ofstream fout("apm.out");

struct graf{
       int x,y,val;
       }a[200003];
int n,i,k,j,m,ac=0,value=0;

char b[200003]= {0};
//int** vec = new int*[10]; 
//vec[1] = new int;
    
graf find_min(){
     int min = 9999999,curr;
     for(int i=1;i<=m;i++){
             if(b[a[i].x]+b[a[i].y] == 1  && a[i].val<min){
                              curr=i;
                              min = a[i].val;
                              }
             }
     cout<<a[curr].val<<"\n";
     return a[curr];
     
     }
void apm(){
     graf q;
     q = find_min();
     value += q.val;
     if(b[q.x]!=0)
                  b[q.y]=1;
                  else
                  b[q.x]=1;
//     cout<<""; 
     ac++;
     }
int main(){
    fin>>n>>m;
//    for(i=1;i<=n;i++) vec[i]= new int;
    for(i=1;i<=m;i++){
                       fin>>a[i].x>>a[i].y>>a[i].val;
                       //v[a[i].x]++;
      //                 vec[a[i].x][v[a[i].x]] = a[i].y;
                       }
    b[1] = 1;
    //active[1]=1;
    ac = 1;
   while(ac<=n-1) apm();
    
    fout<<value;
   
    
    //system("pause");
}