A75073.魔法饰品
普及+/提高
通过率:0%
时间限制:2.00s
内存限制:1024MB
题目描述
在遥远的王国中,流通着编号为 1,2,…,N 的 N 种魔法石。
NoonMaple打算将魔法石排成一列来制作装饰品。
魔法石之间有些可以相邻,有些则不行。可以相邻的魔法石对有 M 组,分别为 (A1,B1),(A2,B2),…,(AM,BM),除此之外的组合都不能相邻(这些组合中,石头的顺序无关紧要)。
请判断是否可以制作一个包含魔法石 C1,C2,…,CK,且每种至少出现一次的魔法石序列。如果可以,请求出制作这样一个序列所需的最少魔法石数量。
输入格式
输入按以下格式从标准输入读入。
N M
A1 B1
A2 B2
⋮
AM BM
K
C1 C2 ⋯ CK
输出格式
输出制作包含魔法石 C1,C2,…,CK 的魔法石序列所需的最小魔法石数量。
如果无法制作,输出 −1。
输入输出样例
输入#1
4 3 1 4 2 4 3 4 3 1 2 3
输出#1
5
输入#2
4 3 1 4 2 4 1 2 3 1 2 3
输出#2
-1
输入#3
10 10 3 9 3 8 8 10 2 10 5 8 6 8 5 7 6 7 1 6 2 4 4 1 2 7 9
输出#3
11
说明/提示
样例解释 1
例如,将魔法石排列为 [1,4,2,4,3],可以制作一个包含魔法石 1,2,3 的长度为 5 的序列。
样例解释 3
例如,将魔法石排列为 [1,6,7,5,8,3,9,3,8,10,2],可以制作一个包含魔法石 1,2,7,9 的长度为 11 的序列。
数据范围
- 所有输入均为整数。
- 1≤N≤105
- 0≤M≤105
- 1≤Ai<Bi≤N
- 若 i=j,则 (Ai,Bi)=(Aj,Bj)
- 1≤K≤17
- 1≤C1<C2<⋯<CK≤N