Dungeon Crawler
Image generated by DALL-E
Two of the dungeon rooms are special. One of these rooms contains a protective idol known as the “helix key.” A different room contains a nasty “dome trap,” which prevents the player from moving once activated. Entering the room with the trap before acquiring the key will result in the player being trapped in the dungeon forever. The player cannot start in the same room as the key or the trap.
There are $q$ different scenarios that Alice and Bob wish to examine. In the $i^{\text {th}}$ scenario, the player starts in room $s_ i$, the key is in room $k_ i$, and the trap is in room $t_ i$. For each scenario, compute the minimum amount of time needed to explore the entire dungeon without getting trapped.
Input
The first line of input contains two integers $n$ and $q$, where $n$ ($3 \leq n \leq 2\, 000$) is the number of rooms and $q$ ($1 \leq q \leq 200\, 000$) is the number of scenarios to consider. Rooms are numbered from $1$ to $n$. The next $n - 1$ lines each contain three integers $u$, $v$, and $w$ indicating that there is a corridor between rooms $u$ and $v$ ($1 \leq u, v \leq n, u \neq v$) that takes time $w$ ($1 \leq w \leq 10^9$) to traverse.
Then follow $q$ lines: the $i^{\text {th}}$ of these lines contains three distinct integers $s_ i$, $k_ i$, and $t_ i$ ($1 \leq s_ i, k_ i, t_ i \leq n$) indicating the room where the player starts, the room with the key, and the room with the trap, respectively.
Output
For each scenario, output the minimum amount of time needed to visit every room at least once. If it is impossible to visit every room at least once, output impossible.
| Sample Input 1 | Sample Output 1 |
|---|---|
5 4 1 2 3 1 3 1 3 4 4 3 5 2 1 2 4 1 4 2 5 2 1 4 3 1 |
15 17 impossible 12 |
| Sample Input 2 | Sample Output 2 |
|---|---|
7 4 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1 1 7 1 1 2 3 5 4 1 3 1 4 2 4 5 |
11 impossible 10 10 |