Cod sursă (job #271684)

Utilizator avatar frencini2 Dobrescu Diana frencini2 IP ascuns
Problemă Zapada (clasele 11 și 12) Compilator cpp | 1,04 kb
Rundă Arhiva de probleme Status evaluat
Dată 25 ian. 2017 22:50:01 Scor 20
#include <fstream>
using namespace std;
ifstream fin("zapada.in");
ofstream fout("zapada.out");

int n,m,k,c[10000][10000],t[10000],s[10000],capm;
void cit()
{
    fin>>n>>m>>k;
    int i,j,k2,co;
    for(i=1;i<=m;i++)
     for(j=1;j<=m;j++)
        c[i][j]=10000;
    for(k2=1;k2<=m;k2++)
    {
        fin>>i>>j>>co;
        c[i][j]=c[j][i]=co;
    }
}

void apm(int r)
{
    int i,j,minim,k;
    s[r]=0;
    t[r]=0;
    capm=0;
    for(i=1;i<=n;i++)
     if(i!=r)
     s[i]=r;

     for(k=2;k<=n;k++)
     {
         minim=10000;
         for(j=1;j<=n;j++)
           if(c[j][s[j]]<minim && s[j]!=0)
           {
               minim=c[j][s[j]];
               i=j;
           }
           t[i]=s[i];
           s[i]=0;
           capm+=minim;
           for(j=1;j<=n;j++)
           if(s[j]!=0 && c[j][s[j]]>c[j][i])
           s[j]=i;
     }
     fout<<capm<<endl;

}





int main()
{
cit();
apm(1);
int i,j,k2,co;
for(k2=1;k2<=k;k2++)
{fin>>i>>j>>co;
c[i][j]=c[j][i]=co;
apm(1);
}
    return 0;
}