#include<bits/stdc++.h>
using namespace std;
const int maxn=4000;
int g[maxn],n,m,d[1001][1001],p,dis[maxn],vis[maxn];
void dijkstra(int s){
for(int i=1;i<=n;i++)dis[i]=100000001;
memset(vis,0,sizeof vis);
int u;
int minn=0x3f3f;
for(int i=1;i<=n;i++)
dis[i]=d[s][i];
vis[s]=1;
dis[s]=0;
for(int j=1;j<=n;j++)
if(!vis[j]&&dis[j]<minn)
minn=dis[j],u=j;
vis[u]=1;
for(int j=1;j<=n;j++)
if(dis[j]>dis[u]+d[u][j]&&!vis[j])
dis[j]=dis[u]+d[u][j];
}
int main(){
cin>>p>>n>>m;
memset(d,0x3f,sizeof d);
for(int i=1;i<=p;i++)cin>>g[i];
for(int i=1;i<=m;i++){
int x,y,z;
cin>>x>>y>>z;
d[x][y]=d[y][x]=z;
}
int minn=100000001;
for(int i=1;i<=n;i++){
dijkstra(i);
int t=0;
for(int j=1;j<=p;j++)
t+=dis[g[j]];
minn=min(minn,t);
}
cout<<minn;
return 0;
}
满分不了但是应该不至于十分吧。。。。
啊啊啊啊啊啊啊帮帮我啊啊啊啊啊啊啊啊啊
神牜祝你长十厘米(●ˇ∀ˇ●)