提交时间:2024-06-02 15:00:16

运行 ID: 150335

#include<iostream> using namespace std; int a[801][801],cow[501],dis[801]; int main(){ int n,p,c,x,y,d,ans=0x7f7f7f7f; cin>>n>>p>>c; for(int i=1;i<=p;i++){ for(int j=1;j<=p;j++){ a[i][j]=0x3f3f3f3f; } } for(int i=1;i<=p;i++){ a[i][i]=0; } for(int i=1;i<=n;i++){ cin>>cow[i]; } for(int i=1;i<=c;i++){ cin>>x>>y>>d; a[x][y]=d; a[y][x]=d; } for(int k=1;k<=p;k++){ for(int i=1;i<=p;i++){ for(int j=1;j<=p;j++){ a[i][j]=min(a[i][j],a[i][k]+a[k][j]); } } } for(int i=1;i<=p;i++){ for(int j=1;j<=n;j++){ dis[i]+=a[i][cow[j]]; } ans=min(ans,dis[i]); } cout<<ans<<endl; return 0; }