DMOPC '18 Contest 2 P3 - Thanksgiving Feast
View as PDFMimi is attending a Thanksgiving feast! She lives in a town with  buildings numbered from 
 to 
 and 
 unweighted bidirectional roads connecting them. The 
 road connects buildings 
 and 
. Mimi is a good guest, so she wants to bring a gift for the host. However, Mimi is also a procrastinator! The Thanksgiving feast is soon and she hasn't bought a gift yet. There are 
 buildings 
 which sell gifts. Mimi is currently at building 
 and the feast is at building 
. She needs to visit at least one of the 
 buildings and go to the feast. Help her find the length of the shortest way to do so!
It is guaranteed that there exists a way. Mimi is allowed to pass through  before buying a gift.
Constraints
Subtask 1 [30%]
Subtask 2 [30%]
Subtask 3 [40%]
Input Specification
The first line of input will contain five space-separated integers , 
, 
, 
, 
.
The next line will contain  space-separated integers 
 representing the buildings which sell gifts.
The next  lines each contain two space-separated integers, 
 and 
.
Output Specification
Output a single integer, the shortest distance.
Sample Input 1
5 4 3 1 2
3 4 5
1 2
2 3
3 4
4 5
Sample Output 1
3
Explanation for Sample 1
Mimi starts at building 1. She passes by , to head to 
. She then returns to 
, giving a total length of 
.
Sample Input 2
5 5 1 1 2
4
1 2
2 3
3 4
4 5
5 1
Sample Output 2
4
Comments
Does anyone mind taking a look at my code? I have WAs from each batch but I can't think of any case that would break my code. What I did was do BFS from the start and end points simultaneously until I reach the first store that both sides have already reached, in which case, I exit the program. Thanks in advance!
I dont think you should to the bfs simultaneously, rather you should do it separately.
Thank you for the feedback! But quick question, why is it faulty to do BFS from both sides simultaneously? I changed my code as you suggested and it passed.