#P9886. [ICPC 2018 Qingdao R] Kawa Exam

    ID: 9311 Type: RemoteJudge 3000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>2018树上启发式合并O2优化ICPC青岛

[ICPC 2018 Qingdao R] Kawa Exam

题目描述

BaoBao is taking an online exam of the Kawa programming language, which consists of nn multiple choice questions. The exam is not easy, as for each question, BaoBao needs to select the one and only one correct answer from 10510^5 available choices! But don't worry, as an active committer of the famous \textit{open-kdk}, BaoBao obviously knows all the correct answers.

Although BaoBao is an expert in Kawa, the developers of the exam system are definitely not experts in software engineering. There are mm bugs in the exam system, and the ii-th bug can be described as (ui,vi)(u_i, v_i), which means that BaoBao must select the same choice for question uiu_i and viv_i (even if the choice he selects is incorrect!).

Time is limited, and the exam must go on. The developers only have time to fix one bug. Now the developers are wondering, for all 1im1 \le i \le m, what's the maximum possible number of questions BaoBao can correctly answer if they fix the ii-th bug. Please write a program to solve this problem so that the developers can select a proper bug to fix.

输入格式

There are multiple test cases. The first line of the input contains an integer TT, indicating the number of test cases. For each test case:

The first line contains two integers nn and mm (1n1051 \le n \le 10^5, 1m1051 \le m \le 10^5), indicating the number of questions and the number of bugs.

The second line contains nn integers a1,a2,,ana_1, a_2, \dots, a_n (1ai1051 \le a_i \le 10^5), where aia_i indicates the correct answer for question ii.

For the following mm lines, the ii-th line has two integers uiu_i and viv_i (1ui,vin1 \le u_i, v_i \le n), indicating the ii-th bug.

It's guaranteed that neither the sum of nn nor the sum of mm over all test cases will exceed 10610^6.

输出格式

For each test case output one line containing mm integers c1,c2,,cmc_1, c_2, \dots, c_m separated by a space, where cic_i indicates the maximum possible number of questions BaoBao can correctly answer if the ii-th bug is fixed.

Please, DO NOT output extra spaces at the end of each line, or your answer may be considered incorrect!

3
7 5
1 2 1 2 1 2 1
1 2
1 3
2 4
5 6
5 7
3 3
1 2 3
1 2
1 3
2 3
2 3
12345 54321
1 2
1 2
1 1
6 5 5 5 4
1 1 1
1 1 1

提示

The following table explains the first sample test case.

  • The possible choices column indicates a possible set of choices to each question BaoBao can select, leading to a maximum possible number of correctly answered questions;
  • The correct column indicates the number of correctly answered questions using the set of choices provided in the possible choices column.
$$\begin{array}{|c|c|c|c|} \hline \textbf{Bug No.} & \textbf{Possible Choices} & \textbf{Correct} \\ \hline 1 & (1, 2, 1, 2, 1, 1, 1) & 6 \\ \hline 2 & (2, 2, 1, 2, 1, 1, 1) & 5 \\ \hline 3 & (1, 1, 1, 2, 1, 1, 1) & 5 \\ \hline 4 & (1, 1, 1, 1, 1, 2, 1) & 5 \\ \hline 5 & (1, 1, 1, 1, 1, 1, 1) & 4 \\ \hline \end{array}$$

For the second sample test case, no matter which bug is fixed, BaoBao has to select the same choice for all the three questions. As the correct answer for each question is different, BaoBao can only correctly answer 1 question.

For the third sample test case, note that even if the developers fix the first bug, the second bug is still taking effect and BaoBao still has to select the same choice for the two problems. It's the same if the second bug is fixed.