3624: 平面旅行(第六轮02)

内存限制:256 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:1 解决:1

题目描述

牛牛最近在玩某款游戏,其地图可以看成一个平面直角坐标系。

地图上存在 n 个小镇,小镇从 1 到 n 编号。第 i 个小镇的坐标为(xi, yi )

。定义两个小镇的距离为曼哈顿距离,比如小镇 i 到小镇 j 的距离为|xi  − xj | + |yi  − yj |,其中, |a|表示取 a 的绝对值。

牛牛在 m 个小镇建立了传送门,也就是说,牛牛可以在任何时候任何瞬间不花 费任何代价,直接到达这 m 个小镇的任何一个。

牛牛一开始在小镇 1,牛牛想按 1 到 n 的顺序访问所有小镇按顺序做任务, 问牛 牛需要走过的最短距离是多少。

牛牛可以提前到达某个小镇,但是必须做完前一个小镇的任务,才能做下一个小 镇的任务。做任务本身不会增加距离。

输入

第一行输入两个整数 n,m,表示地图上小镇的数目和牛牛建立了传送门的小镇数 量。

随后 n 行,其中第 i 行输入两个整数xi, yi,第 i 个小镇的坐标。 随后一行输入 m 个整数,表示建立了传送门的小镇编号。

对于20%的数据有 m=0。 对于40%的数据有 m=1。

对于60%的数据有n, m ≤ 300。

对于100%的数据有1 ≤ n ≤ 5000, 0 ≤ m ≤ n, −10000 ≤ xi, yi  ≤ 10000 数据保证没有任意两个小镇在同一坐标下。


输出

一行一个整数表示答案。

样例输入 复制

6 2
-10 -10
10 10
0 0
1 -1
-1 1
2 1
3 6

样例输出 复制

21

提示

【样例 1 输入】

6 2

-10 -10

10 10

0 0

1 -1

-1 1

2 1

3 6

【样例 1 输出】

21

【样例 1 说明】

牛牛一开始在小镇 1,完成任务后,传送到小镇 6。

步行至小镇 2,累计 17 点距离,完成任务后,传送到小镇 3。 在小镇 3 完成任务,累计 17 点距离。

步行到小镇 4 完成任务,累计 19 点距离,  传送到小镇 3。

步行到小镇 5 完成任务,累计 21 点距离。 传送到小镇 6 并完成任务。

共计 21 点距离。

对于20%的数据有 m=0。 对于40%的数据有 m=1。

对于60%的数据有n, m ≤ 300。

对于100%的数据有1 ≤ n ≤ 5000, 0 ≤ m ≤ n, −10000 ≤ xi, yi  ≤ 10000 数据保证没有任意两个小镇在同一坐标下。


来源/分类