Pagini recente » Cod sursa (job #2312308) | Cod sursa (job #234457) | Cod sursa (job #234458) | Cod sursa (job #2329505) | Cod sursa (job #701750)
Cod sursa(job #701750)
#include<fstream>
#include<algorithm>
#define INF 0x3f3f
using namespace std;
ifstream f("traseu.in");
ofstream g("traseu.out");
int D[62],T[62],U[62],C[62][62],s,n,m,i,j;
void citire()
{ f>>n>>m;
int i,j;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++) if(i-j) C[i][j]=C[j][i]=INF;
while(m--) f>>i>>j>>C[i][j];
}
void solve(int s)
{ int nod,min,i;
memset(D,INF,sizeof(D));
memset(U,0,sizeof(U));
memset(T,0,sizeof(T));
D[s]=0;
while(1)
{ min=INF;
nod=-1;
for(i=1;i<=n;i++) if(!U[i]&&D[i]<min) min=D[i],nod=i;
if(min==INF) break;
U[nod]=1;
for(i=1;i<=n;i++) if(D[i]>D[nod]+C[nod][i]) D[i]=D[nod]+C[nod][i];
}
}
int main()
{ citire();
solve(1);
for(i=1;i<=n;i++) if(C[i][1]!=INF) s+=C[i][1]+D[i];
g<<s<<"\n";
return 0;
}