CF2237H Slime and Queries

Description

You are given a tree with $ n $ vertices numbered from $ 1 $ to $ n $ . A slime occupies exactly $ m $ vertices of the tree. It is guaranteed that the subgraph induced by the occupied vertices is connected. Initially, the slime occupies vertices $ s_1,s_2,\ldots,s_m $ . First, we define a function $ f $ on a sequence of vertices. Consider a sequence $ a_1,a_2,\ldots,a_k $ . There are $ k $ pieces of food. For each $ i $ , the $ i $ -th piece of food is located at vertex $ a_i $ . At first, only the first piece of food appears. The slime may perform the following operations any number of times: - Move. The slime removes itself from one currently occupied vertex and expands to one currently unoccupied vertex.Formally, let $ S $ be the current set of occupied vertices. Choose a vertex $ u\in S $ and a vertex $ v\notin S $ , and replace $ S $ with $ (S\setminus{u})\cup{v} $ . After the operation, the subgraph induced by $ S $ must still be connected. - Eat. If the $ i $ -th piece of food has appeared and the slime currently occupies vertex $ a_i $ , then the slime may eat the $ i $ -th piece of food. If $ 1\le i \lt k $ , the $ (i+1) $ -th piece of food appears immediately after that. Eating does not change the occupied vertices. Define $ f([a_1,a_2,\ldots,a_k]) $ as the minimum number of Move operations needed for the slime to eat all $ k $ pieces of food in order, starting from the initial occupied vertices $ s_1,s_2,\ldots,s_m $ . There are $ q $ queries. The input is forced online. The input gives encoded values $ p_1,p_2,\ldots,p_q $ . Let $ \mathrm{ans}_0=0 $ . For each $ i=1,2,\ldots,q $ , the actual vertex of the $ i $ -th query is $ c_i=((p_i-1+\mathrm{ans}_{i-1}) \bmod n)+1 $ , where $ \mathrm{ans}_i=f([c_1,c_2,\ldots,c_i]) $ . For each $ i=1,2,\ldots,q $ , output $ \mathrm{ans}_i $ .

Input Format

Each test contains multiple test cases. The first line contains the number of test cases $ t $ ( $ 1 \le t \le 10^4 $ ). The description of the test cases follows. The first line of each test case contains three integers $ n $ , $ m $ , and $ q $ ( $ 2\le m\le n\le 10^5 $ , $ 1\le q\le 10^5 $ ) — the number of vertices in the tree, the number of vertices occupied by the slime, and the number of queries. Each of the next $ n-1 $ lines contains two integers $ u $ and $ v $ ( $ 1\le u,v\le n $ , $ u\ne v $ ), denoting an edge of the tree. The next line contains $ m $ distinct integers $ s_1,s_2,\ldots,s_m $ ( $ 1\le s_i\le n $ ) — the vertices initially occupied by the slime. It is guaranteed that these vertices induce a connected subgraph. The next line contains $ q $ integers $ p_1,p_2,\ldots,p_q $ ( $ 1\le p_i\le n $ ) — the encoded query vertices. It is guaranteed that the sum of $ n $ over all test cases does not exceed $ 10^5 $ . It is guaranteed that the sum of $ q $ over all test cases does not exceed $ 10^5 $ .

Output Format

For each test case, output $ q $ integers. The $ i $ -th integer should be $ \mathrm{ans}_i $ .

Explanation/Hint

In the explanations below, the underlined vertex is the newly occupied vertex after a Move, and vertices where the slime eats food are written in bold. ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2237H/1b9b9c960c63544cf5ff957cc59f0b9e0d3bc3ae7036c3fb417d3bd90f39c0e9.png)In the first test case, after decoding, the food appears at vertices $ 1,4,5 $ in order. Initially, the slime occupies $ [1,2] $ . 1. For $ [1] $ , the slime already occupies vertex $ \mathbf{1} $ , so $ \mathrm{ans}_1=0 $ . 2. For $ [1,4] $ , one optimal process is $ [\mathbf{1},2]\to[2,\underline{3}]\to[3,\underline{\mathbf{4}}] $ , so $ \mathrm{ans}_2=2 $ . 3. For $ [1,4,5] $ , one optimal process is $ [\mathbf{1},2]\to[2,\underline{3}]\to[3,\underline{\mathbf{4}}]\to[3,\underline{\mathbf{5}}] $ , so $ \mathrm{ans}_3=3 $ . ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2237H/75b2134454e0948f6781eea685ed950679a4af8cff1074e3f23df1944e58aa1b.png)In the second test case, after decoding, the food appears at vertices $ 5,3,6,2 $ in order. Initially, the slime occupies $ [1,2,3] $ . 1. For $ [5] $ , one optimal process is $ [1,2,3]\to[1,3,\underline{\mathbf{5}}] $ , so $ \mathrm{ans}_1=1 $ . 2. For $ [5,3] $ , the same process also lets the slime eat at vertex $ \mathbf{3} $ , so $ \mathrm{ans}_2=1 $ . 3. For $ [5,3,6] $ , one optimal process is $ [1,2,3]\to[1,3,\underline{\mathbf{5}}]\to[1,3,\underline{\mathbf{6}}] $ , so $ \mathrm{ans}_3=2 $ . 4. For $ [5,3,6,2] $ , one optimal process is $ [1,2,3]\to[1,3,\underline{\mathbf{5}}]\to[1,3,\underline{\mathbf{6}}]\to[1,\underline{\mathbf{2}},3] $ , so $ \mathrm{ans}_4=3 $ . ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF2237H/3300c765f673c33625a4d6d5f2d5a331c917b20434ab1ce7c9c3f848d8d299f5.png)In the third test case, after decoding, the food appears at vertices $ 7,5,6,4,3 $ in order. Initially, the slime occupies $ [1,2,4] $ . 1. For $ [7] $ , one optimal process is $ [1,2,4]\to[1,2,\underline{3}]\to[1,3,\underline{\mathbf{7}}] $ , so $ \mathrm{ans}_1=2 $ . 2. For $ [7,5] $ , one optimal process is $ [1,2,4]\to[1,2,\underline{3}]\to[1,3,\underline{\mathbf{7}}]\to[1,\underline{2},3]\to[1,2,\underline{\mathbf{5}}] $ , so $ \mathrm{ans}_2=4 $ . 3. For $ [7,5,6] $ , one optimal process is $ [1,2,4]\to[1,2,\underline{3}]\to[1,3,\underline{\mathbf{7}}]\to[1,\underline{2},3]\to[1,2,\underline{\mathbf{5}}]\to[1,2,\underline{3}]\to[1,3,\underline{\mathbf{6}}] $ , so $ \mathrm{ans}_3=6 $ . 4. For $ [7,5,6,4] $ , continue with $ [1,3,\mathbf{6}]\to[1,\underline{2},3]\to[1,2,\underline{\mathbf{4}}] $ , so $ \mathrm{ans}_4=8 $ . 5. For $ [7,5,6,4,3] $ , continue with $ [1,2,\mathbf{4}]\to[1,2,\underline{\mathbf{3}}] $ , so $ \mathrm{ans}_5=9 $ . In the fourth test case, after decoding, the food appears at vertices $ 3,4,5,2,1 $ . In the fifth test case, after decoding, the food appears at vertices $ 6,1,3,5,2,4 $ . In the sixth test case, after decoding, the food appears at vertices $ 7,5,6,1,4 $ .