Hoán vị nhỏ nhất

Xem PDF

Điểm: 2000 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Cho dãy \(a\) gồm \(n\) phần tử có giá trị trong khoảng \([1, m]\). Hãy tìm dãy con có thứ tự từ điển nhỏ nhất của dãy \(a\) mà là hoán vị độ dài \(m\).

Dãy con của một dãy \(a\) độ dài \(n\) có thể thu được bằng cách loại bỏ đi một số (có thể là không hoặc tất cả) phần tử và giữ nguyên thứ tự của các phần tử còn lại.

Input

  • Dòng đầu tiên chứa hai số nguyên \(n\)\(m\) (\(1 \leq m \leq n \leq 2 \cdot 10^6\)).
  • Dòng tiếp theo chứa \(n\) số nguyên \(a_1, a_2, \ldots, a_n\) (\(1 \leq a_i \leq m\)). Dữ liệu đảm bảo mọi số nguyên trong khoảng \([1, m]\) xuất hiện trong dãy ít nhất một lần.

Output

  • Gọi \(b\) là dãy con tìm được. Hãy in ra giá trị của \(\displaystyle \sum_{i = 1}^{m} b_i \oplus i\). Trong đó \(\oplus\) là toán tử logic XOR.

Scoring

  • Subtask \(1\) (\(20\%\) số điểm): \(n \leq 20\).
  • Subtask \(2\) (\(20\%\) số điểm): \(n \leq 2 \cdot 10^2\).
  • Subtask \(3\) (\(20\%\) số điểm): \(n \leq 2 \cdot 10^3\).
  • Subtask \(4\) (\(20\%\) số điểm): \(n \leq 2 \cdot 10^5\).
  • Subtask \(5\) (\(20\%\) số điểm): Không có ràng buộc gì thêm.

Example

Test 1

Input
4 3
2 3 1 3
Output
6
Note

Có hai dãy con là hoán vị độ dài \(3\)\(\{2, 3, 1\}\)\(\{2, 1, 3\}\). Trong đó dãy \(\{2, 1, 3\}\) có thứ tự từ điển nhỏ nhất. Ta in ra \((2 \oplus 1) + (1 \oplus 2) + (3 \oplus 3) = 3 + 3 + 0 = 6\).


Bình luận

Không có bình luận nào.