#QU000001. Giá trị lớn nhất trên cửa sổ trượt (Sliding Window Maximum)

    ID: 136 Loại: Thông thường 2000ms 256MiB Tried: 3 Đã chấp nhận: 2 Độ khó: 1 Đăng bởi: Nhãn>Data StructuresDequeAmortized AnalysisMonotonic queueSliding windowRange QueriesRange maximum query

Giá trị lớn nhất trên cửa sổ trượt (Sliding Window Maximum)

Giá trị lớn nhất trên cửa sổ trượt (Sliding Window Maximum)

Nguồn: LeetCode

Phiên bản: Phước Hưng OJ Extended

Đề bài

Cho dãy nn số nguyên và số nguyên kk. Cửa sổ độ dài kk lần lượt dịch từ trái sang phải. Hãy in giá trị lớn nhất của mỗi cửa sổ.

Input

Dòng đầu chứa n,kn,k. Dòng thứ hai chứa nn số nguyên aia_i.

Output

In n−k+1n-k+1 số nguyên: giá trị lớn nhất của từng cửa sổ.

Subtask

  • Subtask 1 (20%): 1≤n≤20001 \le n \le 2000.
  • Subtask 2 (30%): 1≤n≤2⋅1041 \le n \le 2\cdot 10^4.
  • Subtask 3 (50%): 1≤n≤1051 \le n \le 10^5.

Toàn bộ dữ liệu tuân theo: 1≤n≤1051 \le n \le 10^5, −104≤ai≤104-10^4 \le a_i \le 10^4, 1≤k≤n1 \le k \le n.

Ví dụ

Input

8 3
1 3 -1 -3 5 3 6 7

Output

3 3 5 5 6 7

Giải thích

Mỗi cửa sổ dài 33 cho một cực đại; theo thứ tự ta nhận được 3,3,5,5,6,73,3,5,5,6,7.