Pagini recente » Cod sursa (job #2084458) | Cod sursa (job #75403) | Cod sursa (job #2780255) | Cod sursa (job #260247) | Cod sursa (job #2209451)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f ("apm.in");
ofstream g ("apm.out");
int a[805][805], d[805], t[805], s[805];
int n, m;
const int oo=1005;
void initializare()
{
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if(i!=j) a[i][j]=oo;
}
void citire()
{
for(int i=1; i<=m; i++)
{
int x, y, z;
f>>x>>y>>z;
a[x][y]=z;
}
for(int i=1; i<=n; i++)
{
d[i]=oo;
t[i]=0;
}
d[1]=0; s[1]=1;
}
void prim()
{
int minn, x, k=1, i;
while(k<n)
{
minn=oo;
for(i=1; i<=n; i++)
{
if(d[i]<minn && s[i]==0) { minn=d[i]; x=i; s[i]=1;k++;}
}
for(i=1; i<=n; i++)
{
if(a[x][i]!=oo) {d[i]=a[x][i]; t[i]=x;}
}
}
}
int main()
{
int suma=0;
f>>n>>m;
initializare();
citire();
prim();
for(int i=1; i<=n; i++)
suma+=d[i];
g<<suma;
return 0;
}