#include<string.h> //和prim类似
#include<stdio.h> //prim所考虑的是节点与当前所建成的树的距离最小
using namespace std; //单源最短路径考虑的是节点与出发点距离最小
int vis[1005][1005];
bool boo[1005];
const int maxa=1000000;
struct que{int x,y,len;}
q[1005];
int main()
{
int leng[1005];
int t,s,d,a,b,time;
while(~scanf("%d%d%d",&t,&s,&d)){
memset(boo,0,sizeof(boo));
int MAX=0;
for(int i=0;i<1005;i++){
for(int k=0;k<1005;k++)
vis[i][k]=maxa;
}
for(int i=0;i<t;i++){
scanf("%d%d%d",&a,&b,&time);
if(a>MAX)
MAX=a;
if(b>MAX)
MAX=b;
if(vis[a][b]>time){
vis[a][b]=time;
vis[b][a]=time;
}
}
for(int i=0;i<=1005;i++){
leng[i]=maxa;
}
for(int i=0;i<s;i++){
scanf("%d",&a);
leng[a]=0;
}
for(int i=0;i<=MAX;i++){
int ii,mina=maxa;
for(int k=0;k<=MAX;k++){
if(boo[k]==0&&leng[k]<mina){
mina=leng[k];
ii=k;
}
}
boo[ii]=1;
for(int i=0;i<=MAX;i++){
if(leng[i]>leng[ii]+vis[ii][i])
leng[i]=leng[ii]+vis[ii][i];
}
}
int mina=maxa;
for(int i=0;i<d;i++){
scanf("%d",&a);
if(mina>leng[a])
mina=leng[a];
}
printf("%d\n",mina);
}
}

最新文章

  1. HTML 学习笔记 JavaScript (变量)
  2. Elasticsearch查询
  3. java中List的用法
  4. VB.NET版机房收费系统---SqlHelper
  5. asp.net core源码地址
  6. css自定义滚动条
  7. Dubbo 源码分析 - 集群容错之 Cluster
  8. input模拟输入下拉框
  9. 【CLR】解析AppDomain
  10. python摸爬滚打之day01----初识Python
  11. Tomcat多站点部署方式
  12. qt——c++环境下qt编程,类的声明与构造
  13. 安装新操作系统 Windows 路径设置 节省C盘空间
  14. Alpha阶段项目展示博客
  15. cursor:hand &amp; cursor:pointer
  16. PHP高级工程师面试 - 笔试题
  17. Django——多网页网站及网页互联
  18. BETA阶段冲刺
  19. couldn&#39;t import dot_parser
  20. Last_SQL_Error: Error &#39;Can&#39;t drop database &#39;ABC&#39;; database doesn&#39;t exist&#39; on query. Default database: &#39;ABC&#39;. Query: &#39;drop database ABC&#39;

热门文章

  1. SAX解析
  2. Number对象
  3. Linq延迟执行
  4. Jasper_table_Cloud not resolve style(s)
  5. Swift—do-try-catch错误处理模式-备
  6. jdk8新特性之lambda expressions
  7. 转:CString::GetLength()获得字节数的正确方法
  8. 进化计算简介和遗传算法的实现--AForge.NET框架的使用(六)
  9. Xamarin.Forms-webservices访问
  10. Codeforces Round #236 (Div. 2)E. Strictly Positive Matrix(402E)