CSES 2217 - Collecting Numbers II
1.0s 512M給你一個包含 \(1, 2, \dots, n\) 的陣列。你的任務是按照從 \(1\) 到 \(n\) 的順序收集這些數字。每一輪中,你會從左到右掃描整個陣列,收集尚未被收集的、且為下一個要找的數字。
你會收到 \(m\) 筆操作,每筆操作會交換陣列中兩個元素的位置。你必須在每筆操作後回報目前需要的回合數。
輸入格式
第一行包含兩個整數 \(n\) 和 \(m\):陣列大小與操作數量。
第二行包含 \(n\) 個整數 \(x_1, x_2, \dots, x_n\):陣列的內容。
接下來 \(m\) 行描述操作。每行包含兩個整數 \(a\) 和 \(b\):交換位置 \(a\) 與位置 \(b\) 的元素。
輸出格式
輸出 \(m\) 個整數:每次操作後所需的回合數。
限制
- \(1 \le n, m \le 2 \cdot 10^5\)
- \(1 \le a, b \le n\)
範例輸入 1
5 3
4 2 1 5 3
2 3
1 5
2 3
範例輸出 1
2
3
4
題目來源
題目來自 CSES Problem Set(Antti Laaksonen),授權 CC BY-NC-SA 4.0;本頁為翻譯,以相同授權分享。
登入後即可撰寫程式並提交評測。
登入