Bakery

Descriptions

玛莎想在从1到n的n个城市中开一家自己的面包店,在其中一个城市烘焙松饼。

为了在她的面包房烘焙松饼,玛莎需要从一些储存的地方建立面粉供应。只有k个仓库,位于不同的城市编号为a1, a2,…,ak。

不幸的是,玛莎居住的那个国家的法律禁止在任何一个有仓库的城市开设面包店。她只能在另一个n - k城市中的一个开这家店,当然,面粉配送也要付费——从仓库到面包房每走一公里,玛莎就得支付1卢布。

形式上,玛莎将支付x卢布,如果她将打开面包店在一些城市b (ai≠b每1≤≤k),选择一个存储在一些城市s (s = aj一些1≤j≤k)和b和s是连接道路的道路摘要长度的x(如果有多个路径,玛莎是能够选择应该使用)。

玛莎非常节俭和理性。她对一个城市感兴趣,在那里她可以开自己的面包店(在k个仓库中选择一个,在有面包店的城市和有仓库的城市之间选择一条道路),并为面粉配送支付尽可能少的卢布。请帮玛莎找到这笔钱。

Input

输入的第一行包含三个整数n, m和k(1≤n, m≤105,0≤k≤n)——玛莎居住的乡村城市数量,它们之间的道路数量,以及面粉库数量。

然后是m行。每一个包含u, v和l三个整数(1≤u, v≤n, 1≤l≤109,u≠v),表示u和v之间有一条长度为l公里的道路。

如果k >为0,那么输入的最后一行包含k个不同的整数a1 a2…, ak(1≤ai≤n)——有面粉仓库的城市数量。如果k = 0,则在输入中不显示这一行。

Output

印尽可能少的卢布,玛莎应该支付面粉运送在唯一的行。

如果面包店不能在n个城市中的任何一个开设(同时满足条件),请在唯一一行打印- 1。

Examples

Input
5 4 21 2 51 2 32 3 41 4 101 5
Output
3

Input
3 1 11 2 33
Note

样例一示意图,暗色的是仓库,白色的是普通城市

题目链接

https://vjudge.net/problem/CodeForces-707B

思维题

城市1和城市5有仓库,那我们只需要考虑城市2和城市4,之所以不考虑城市3是因为仓库1到城市3必须要经过城市2,显然城市2比城市3离仓库1更近

于是,我们只要把有仓库的城市标记,如果某条双向路一端连着有仓库的城市,另一端连着没有仓库的城市,那就把这条路的长度取来作比较,留下距离最短的路即可

AC代码

#include <iostream>
#include <cstdio>
#include <fstream>
#include <algorithm>
#include <cmath>
#include <deque>
#include <vector>
#include <queue>
#include <string>
#include <cstring>
#include <map>
#include <stack>
#include <set>
#include <sstream>
#define IOS ios_base::sync_with_stdio(0); cin.tie(0);
#define Mod 1000000007
#define eps 1e-6
#define ll long long
#define INF 0x3f3f3f3f
#define MEM(x,y) memset(x,y,sizeof(x))
#define Maxn 100000+5
using namespace std;
int n,m,k;
int u[Maxn];//起点城市
int v[Maxn];//终点城市
int l[Maxn];//城市之间的距离
int vis[Maxn];//vis[x]=1 x这个城市为仓库
int main()
{MEM(vis,0);//一开始都是城市cin>>n>>m>>k;for(int i=1; i<=m; i++)cin>>u[i]>>v[i]>>l[i];for(int i=1; i<=k; i++)//标记仓库
    {int x;cin>>x;vis[x]=1;}int ans=INF;for(int i=1; i<=m; i++){if(!vis[u[i]]&&vis[v[i]]||!vis[v[i]]&&vis[u[i]])//一个城市为仓库,一个城市不是仓库,取中间距离ans=min(ans,l[i]);}if(ans!=INF)cout<<ans<<endl;elsecout<<-1<<endl;return 0;
}

转载于:https://www.cnblogs.com/sky-stars/p/11225766.html

【CodeForces - 707B】Bakery(思维水题)相关推荐

  1. codeforces 1060a(思维水题)

    Let's call a string a phone number if it has length 11 and fits the pattern "8xxxxxxxxxx", ...

  2. FZU 2230 2230 翻翻棋(思维水题)

    Problem Description 象棋翻翻棋(暗棋)中双方在4*8的格子中交战,有时候最后会只剩下帅和将.根据暗棋的规则,棋子只能上下左右移动,且相同的级别下,主动移动到地方棋子方将吃掉对方的棋 ...

  3. CF Round #426 (Div. 2) The Useless Toy 思维 水题

    题目链接: http://codeforces.com/contest/834/problem/A 题目描述: 输入起始状态和结束状态和数列长度, 判断旋转方向是顺时针逆时针还是不合理 解题思路: 长 ...

  4. CodeForces - 622C Not Equal on a Segment(思维+水题)

    题目链接:点击查看 题目大意:先给出一个长度为n的数列,然后给出m次询问,每次询问的格式是l,r,x,其中[l,r]代表的是数列的下标范围,要求我们输出任意一个在区间[l,r]内值不等于x的下标 题目 ...

  5. 【CodeForces - 1066A~E】水题,模拟(有技巧),思维,题意难懂的模拟,二进制问题(有技巧)

    A. 题目大意: x坐标上1~L有L个点都是整数,每v个长度就有一个灯亮着,但是有 [ l , r ] 这段区间上有列火车挡住了,问你能看到多少亮灯. 解题报告: 大水题啊,找几个样例就会发现需要特殊 ...

  6. 【CodeForces - 1038A 】Equality (思维水题,预处理字符串)

    题干: You are given a string ss of length nn, which consists only of the first kk letters of the Latin ...

  7. 【Disturbed People】【CodeForces - 1077B】(思维水题)

    题目: There is a house with nn flats situated on the main street of Berlatov. Vova is watching this ho ...

  8. Codeforces Gym 100286I iSharp 水题

    Problem I. iSharp Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://acm.hust.edu.cn/vjudge/contest ...

  9. 中石油训练赛 - 姓氏(思维+水题)

    题目描述 在一个很大的课室里,里面有很多学生在听课.L老师挑选了其中的N个不同的学生起立回答问题,L老师对起立的每一个学生都是问同样的问题:"在本课室里,和你同姓的学生有多少人(不包括你自己 ...

最新文章

  1. Directx11 教程(2) 基本的windows应用程序框架(2)
  2. [OpenJudge] 百练2754 八皇后
  3. cbow word2vec 损失_word2vec个人总结-理论篇
  4. 天地图专题四:在天地图上显示运行轨迹
  5. 异构GoldenGate 12c 单向复制配置
  6. if分支语句(JS)
  7. spark的python开发安装方式,最简单的方式来安装Python依赖关系的Spark执行器节点?...
  8. SONiC项目的发展及其介绍
  9. libgdx之瓦片地图(TiledMap)
  10. Micro Sip 配置自己的freeswitch服务器地址
  11. Financial knowledge
  12. CSDN 写作小技巧(3)——学会在 CSDN 中插入超链接
  13. Python_计算加速度
  14. Android应用推广渠道分享
  15. 服务器端返回的状态码是什么意思
  16. 2022极米投影和米家投影哪个好 家用智能投影仪对比
  17. 优动漫PAINT漫画和插画方面软件特色
  18. 《算法导论》学习笔记第一章
  19. ORACLE自学教程
  20. Caused by: io.netty.resolver.dns.DnsNameResolverTimeoutException: [/192.168.1.1:53] query via UDP ti

热门文章

  1. 制定交叉编译工具_制作交叉编译工具链的方法总结(详细)
  2. mysql merge查询速度_MySQL 查询优化之 Index Merge
  3. mysql如何容器化_MySQL容器化详细教程
  4. 程序设计用户生日怎么发推送_生日祝福:儿子生日怎么发朋友圈说说 儿子生日怎么写祝福语...
  5. shell 创建文件_vba代替鼠标打开文件夹
  6. 相机模型与标定(十四)--误差分析
  7. 项目管理实践之版本控制工具SVN在Windows平台下的平台搭建
  8. 2015-FCN论文翻译
  9. Swagger 教程
  10. image是否有disabled属性_8、背景属性