VOI 26 Bài 4 - Tất niên

Xem dạng PDF

Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 2.0s
Giới hạn bộ nhớ: 1G
Input: TET.INP
Output: TET.OUT

Tác giả:
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Trong tiệc tất niên cuối năm, gia đình Alice chuẩn bị một bàn tiệc lớn để chào đón mọi người. Trên bàn có ~N~ đĩa thức ăn được bày biện đẹp mắt thành một hàng, được đánh số từ ~1~ tới ~N~ từ trái sang phải. Đĩa thứ ~i~ (~1 \leq i \leq N~) có độ hấp dẫn là một số nguyên dương ~A_i~.

Với một đoạn gồm ~M~ đĩa ở vị trí liên tiếp của bàn tiệc có độ hấp dẫn tương ứng là dãy (~B_1, B_2, ..., B_M~), Alice định nghĩa độ đa dạng của dãy đó là số lượng dãy khác nhau có thể nhận được bằng cách thực hiện không quá một phép đảo ngược trên dãy. Một phép đảo ngược là việc chọn một cặp chỉ số ~(L, R)~ với ~1 \leq L < R \leq M~ và thực hiện đảo ngược dãy (~B_L, B_{L + 1}, ..., B_{R - 1}, B_{R}~) thành dãy ~(B_R, B_{R - 1}, ..., B_{L + 1}, B_L~), các phần tử còn lại giữ nguyên. Hai dãy (~X_1, X_2, ..., X_M~) và (~Y_1, Y_2, ..., Y_M~) được xem là khác nhau nếu tồn tại chỉ số ~i~ (~1 \leq i \leq M~) sao cho ~X_i \neq Y_i~. Ví dụ, dãy (~3, 1, 3~) có độ đa dạng bằng ~3~ vì có thể tạo được 3 dãy khác nhau với không quá một phép đảo ngược: (~3, 1, 3~), (~1, 3, 3~), (~3, 3, 1~).

Trong buổi tiệc, có ~Q~ vị khách lần lượt tới tham dự. Vị khách thứ ~j~ (~1 \leq j \leq Q~) đến và lấy chiếc đĩa thứ ~p_j~ để dùng bữa. Sau khi một chiếc đĩa được lấy ra, những chiếc còn lại giữ nguyên vị trí ban đầu và tạo thành các đoạn con ngăn cách bởi các vị trí trống do các đĩa đã được lấy đi. Alice tính độ đa dạng của mỗi đoạn con và muốn biết độ đa dạng lớn nhất trong số chúng.

Yêu cầu: Sau khi mỗi vị khách nhấc một chiếc đĩa đi, hãy tính độ đa dạng lớn nhất trong các đoạn con còn lại.

Input

Vào từ file văn bản TET.INP:

  • Dòng đầu chứa hai số nguyên ~N~ và ~Q~ (~1 \leq Q < N \leq 2 \times 10^5~).

  • Dòng thứ hai chứa ~N~ số nguyên dương ~A_1, A_2, ..., A_N~ (~1 \leq A_i \leq 10^9~ với mọi ~i = 1, 2, ..., N~).

  • Dòng thứ ~j~ trong số ~Q~ dòng tiếp theo chứa một số nguyên dương ~p_j~ (~1 \leq p_j \leq N~). Dữ liệu đảm bảo các giá trị ~p_j~ là khác nhau.

Output

Ghi ra file văn bản TET.OUT:

  • Gồm ~Q~ dòng, mỗi dòng một số nguyên duy nhất là kết quả tìm được sau khi vị khách tương ứng nhấc một chiếc đĩa đi.

Scoring

Subtask Điểm Giới hạn
~1~ ~30\%~ ~Q = 1, N \leq 200~
~2~ ~30\%~ ~Q = 1, N \leq 2000~
~3~ ~20\%~ ~Q = 1~
~4~ ~20\%~ Không có ràng buộc nào thêm.

Sample Input 1

7 3
4 1 3 1 3 2 1
2
5
6

Sample Output 1

9
2
2

Notes

  • Sau khi lấy đĩa thứ ~2~, thu được hai đoạn con là (~4~) và (~3, 1, 3, 2, 1~), với độ đa dạng lần lượt là ~1~ và ~9~.

  • Sau khi lấy đĩa thứ ~5~, thu được ba đoạn con là (~4~), (~3, 1~), và (~2, 1~), với độ đa dạng lần lượt là ~1~, ~2~ và ~2~.

  • Sau khi lấy đĩa thứ ~6~, thu được ba đoạn con là (~4~), (~3, 1~), và (~1~), với độ đa dạng lần lượt là ~1~, ~2~ và ~1~.


Bình luận

Hãy đọc nội quy trước khi bình luận.


Không có bình luận tại thời điểm này.