问题 5930 --兔兔的导航系统

5930: 兔兔的导航系统★★★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 2  解决: 2
[提交][状态][命题人:]

题目描述

假期到了,兔兔又要驾车出去旅游,由于兔兔不认路,因此出行需要依靠导航系统。已知导航地图上共有n个城市,通过m条单向道路相连,每条路的长度均为1。兔兔从城市p1出发,导航设置的终点为pk,兔兔实际出行的路线为p1,p2,...pk。其中p1,p2,...pk没有重复的数字。
兔兔的导航系统的计算规则如下:若当前在节点pi,会构造一条从pi到pk的最短路径(这种路径可能不止一条,但导航系统只会选其中一条),设导航系统规划的下一个节点为w,而实际走的下地个节点为v。
若w=v,则不会触发重构。
若w≠v,则会触发重构。
现在请你帮忙计算一下,按实际出行的路线,导航系统可能的最少重构次数和最多重构次数。

输入

第一行为两个整数n与m (2≤n≤m≤2e5),分别表示城市数量与路的数量。
接下来m行,每行为两个整数u,v(1≤u,v≤n,u≠v),表示存在着从u到v的一条路,测试数据保证每条路都是不同的。
接下来一行为k(2≤k≤n),表示实际经过的城市的数量。
最后一行为k个整数p1,p2,...pk。其中p1表示起点,pk为终点,并且保证每个数都是唯一的、pi与pi+1之间必定存在着一条路。

输出

输出2个整数,分别表示最少重构次数和最多重构次数。
样例输入
Copy
6 9
1 5
5 4
1 2
2 3
3 4
4 1
2 6
6 4
4 2
4
1 2 3 4
样例输出
Copy
1 2

提示

测试样例2
输入:
7 7
1 2
2 3
3 4
4 5
5 6
6 7
7 1
7
1 2 3 4 5 6 7
输出:
0 0

测试样例3
输入:
8 13
8 7
8 6
7 5
7 4
6 5
6 4
5 3
5 2
4 3
4 2
3 1
2 1
1 8
5
8 7 5 2 1
输出:
0 3

来源

 

[提交][状态]