Meet In The Middle

아직 제출이 없습니다시간 제한1초메모리 제한1024 MB

문제

신촌 왕국에는 11번부터 NN번까지 NN개의 마을이 있고 N1N-1개의 도로가 서로 다른 두 마을을 연결하고 있다. 모든 마을은 도로를 통해 다른 마을로 갈 수 있고, 이때 마을 내에서의 이동 거리는 무시할 수 있다.

현재 신촌 왕국은 "대칭병"의 대유행으로 혼란을 겪고 있다. 대칭병은 어떤 것이든 대칭을 이루지 않으면 심신이 불편해져 일상생활을 할 수 없게 만드는 병이다. 대칭병의 여파는 엄청났는데 심지어 사람과 사람 간의 만남조차 어렵게 됐다. 신촌 왕국의 두 사람이 만나는 상황을 생각해보자. 약속 장소가 둘 중 한 사람의 마을에 더 가깝다면 아주 불편해진다. 따라서 두 사람이 사는 각 마을까지의 거리가 정확히 같은 곳을 약속 장소로 정해야 할 것이다. 즉, Meet in the middle. 가운데에서 만나야 한다!

신촌 왕국 도로 정보와 만나려는 두 사람의 마을이 주어졌을 때, 약속 장소로 적절한 위치를 구해보자.

입력

첫 번째 줄에 마을의 수 NN, 약속의 수 KK가 주어진다. (1N,K100,000)(1 \le N, K \le 100\\,000)

이어지는 줄부터 N1N-1개의 줄에 도로 정보를 나타내는 세 정수 uu, vv, ww가 주어진다. uu번 마을과 vv번 마을 사이에 길이 ww의 도로가 있다는 뜻이다. (1u,vN(1 \le u, v \le N, uvu \neq v, 1w109)1 \le w \le 10^9)

이어지는 줄부터 KK개의 줄에 만나려는 두 사람의 마을 번호 uu, vv가 주어진다. (1u,vN)(1 \le u, v \le N)

출력

KK개의 줄에 두 사람의 만날 수 있는 마을의 번호를 출력한다. 그러한 마을이 없다면 -1을 출력한다. 가능한 답이 여러 가지라면, 두 사람이 사는 각 마을까지 거리의 합이 짧은 것을 출력한다.