Pagini recente »
Cod sursă (job #271684)
Cod sursă (job
#271684)
#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;
}