QOJ.ac

QOJ

Límite de tiempo: 2 s Límite de memoria: 256 MB Puntuación total: 100

#894. 最長鬆散線段

Estadísticas

若一個列表 $A$ 滿足 $\max(A) + \min(A) > \text{len}(A)$,則稱其為 loose。

今天 Rikka 得到了一個長度為 $n$ 的列表 $A$。她想要找出 $A$ 中最長的區段 $[l, r]$,使得列表 $[A_l, A_{l+1}, \dots, A_r]$ 是 loose 的。

Rikka 將會對列表 $A$ 進行 $m$ 個回合的操作。在每一回合中,Rikka 會依序執行一個或多個給定的操作。每個操作都是交換列表 $A$ 中的兩個元素。你的任務是計算出初始狀態以及每一回合結束後,列表 $A$ 中最長 loose 區段的長度。

注意:第 $i$ 回合的操作是在第 $(i - 1)$ 回合結束後的列表上進行的。

輸入格式

第一行包含兩個整數 $n$ 和 $m$ ($1 \le n \le 10^6$ 且 $1 \le m \le 30$)。

第二行包含 $n$ 個整數 $A_i$ ($-10^6 \le A_i \le 10^6$),構成初始列表 $A$。

接著是 $m$ 個回合的描述。對於每個回合,第一行包含一個整數 $k$ ($1 \le k \le 10^6$),代表交換次數。接著有 $k$ 行,每行包含兩個整數 $u_i$ 和 $v_i$ ($1 \le u_i, v_i \le n$ 且 $u_i \neq v_i$),表示 Rikka 在此操作中會交換 $A_{u_i}$ 和 $A_{v_i}$。

保證 $\sum k \le 10^6$。

輸出格式

第一行輸出一個整數:初始列表 $A$ 中最長 loose 區段的長度。

接著輸出 $m$ 行。每一行輸出一個整數:該回合結束後,列表 $A$ 中最長 loose 區段的長度。

範例

輸入 1

5 2
1 2 -2 3 4
1
2 3
1
1 2

輸出 1

2
3
4

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.