U23029.压缩旅行计划

普及/提高-

通过率:0%

时间限制:1.00s

内存限制:128MB

题目描述

小明来到了一个全新的国度,他决定在这个国度中进行旅行。这个国家有 nn 个城市,有 mm 条双向道路相连,小明选出了 tt 个城市要去旅行,其中第 ii 个城市编号为 ai(i[1,n])a_i (i \in [1,n])。但是,小明是一个强迫症,他认为,旅行的城市编号应该呈现不下降的趋势。换句话说,a1a2ata_1 \leq a_2 \leq \dots \leq a_t。但是,小明的计划有所变更,他希望减少一些城市旅行,使效率更高。当然,小明不能跳过起点和终点,且如果小明想要从 ii 号城市跳到 jj 号城市,则必须保证 ia,jai \in a,j \in a。注意,小明必须按照旅行计划的顺序游览参观,除非有些城市可以跳过。小明想知道,自己最少还需要旅游多少个城市。

输入格式

输入第一行是三个正整数 n,m,tn,m,t,分别表示城市数量,道路数量,和旅行城市数量。
第二行是 tt 个正整数,表示小明的旅行路线,其中路线 aa 保持单调不下降。同时,相邻的两个旅游城市之间有着一条道路。
接下来还有 mt+1m-t+1 行,每行两个正整数 u,vu,v ,表示城市 uu 与城市 vv 之间有一条道路。

输出格式

只有一个正整数,表示小明最终旅行的城市的数量。

输入输出样例

  • 输入#1

    6 8 5
    1 2 3 5 6
    2 4
    4 2
    2 2
    2 5

    输出#1

    4

说明/提示

样例解释

对于样例 11,小明要游览 55 个城市,的计划如下:

1>2>3>5>61 -> 2 -> 3 -> 5 -> 6

实际上,小明通过 2>52 -> 5 的道路把路径压缩成了 44 个城市:

1>2>5>61 -> 2 -> 5 -> 6

所以输出为 44


说明提示

注意,aa 并不是 [1,n][1,n] 的集合,而是其中的 tt 个元素所组成的有序数组。


数据范围

对于 20%20\% 的数据,2n102 \leq n \leq 10
对于 50%50\% 的数据,2n10002 \leq n \leq 1000
对于 100%100\% 的数据,1tn1051 \leq t \leq n \leq 10^51k<nm1061 \leq k < n \leq m \leq 10^61ain1 \leq a_i \leq n
输入数据中剩下的 mk+1m−k+1 条道路可能自己连向自己,或者与任何道路重复。

首页