POLICEMEN - Police Men
There is a country of n cities and n-1 bidirectional roads you can go from any city to another using its roads
You are a police man and there is a theif who is going to escape from the country using an airport in city 1 you are given m queries which of type "a b" which means the thief is in city a and you are in city b you should find if it's possible to catch him before he escape or not and find the city which you will catch him in if it's possible.
You are moving at the same speed the thief moving at and the thief is taking the shortest path to city 1.
If you arrived in a city in the same time as the thief you can catch him in it if you arrived before him you can wait for him.
If there is more than one city you can catch him in print the nearest one to you.
Input
The first line contains an integer n (1 ≤ n ≤ 104) then n-1 lines each contains two integers which means there is a road between city u and v
Then an integer q (1 ≤ q ≤ 104) and q lines of form a b (1 ≤ a , b ≤ n) which are the thief's position and your position.
Output
For each query print YES then a space then the city which you will catch him in if it's possible otherwise print NO.
Example
Input: 5
1 2
1 3
2 4
4 5
4
1 2
1 1
5 4
2 3
Output: NO
YES 1
YES 4
YES 1
hide comments
metalavocado99:
2023-05-25 10:51:59
Who the F*** is Ant Man ? < Andrew Tate comment > |
|
metalavocado99:
2023-05-23 11:49:46
AC in 0 goes , I am better than u all HEHEHEHEHEHEHEHEHEHEHEHEHEHAWWWWWWWWW |
|
vinay1998:
2018-06-13 08:46:26
AC in one go !!! ( LCA , shortest distance from root ) |
|
abdou_93:
2016-08-12 08:47:24
"nearest one to you." |
|
mahmoudbadawy5:
2016-07-25 08:18:21
Sorry but there were a mistake in the data set but I couldn't rejudge the solutions please resubmit your solutions |
Added by: | mahmoudbadawy5 |
Date: | 2016-07-21 |
Time limit: | 2s |
Source limit: | 50000B |
Memory limit: | 1536MB |
Cluster: | Cube (Intel G860) |
Languages: | All except: ASM64 GOSU |
Resource: | Mine |