#QU000000. Cửa sổ trượt (Sliding Window)

    ID: 135 Loại: Thông thường 5000ms 256MiB Tried: 2 Đã chấp nhận: 2 Độ khó: 1 Đăng bởi: Nhãn>Amortized AnalysisMonotonic queueSliding windowRange QueriesRange maximum queryRange minimum queryData StructuresDeque

Cửa sổ trượt (Sliding Window)

Cửa sổ trượt (Sliding Window)

Nguồn: POJ

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

Đề bài

Cho dãy a1,a2,…,ana_1,a_2,\ldots,a_n và độ dài cửa sổ kk. Với mỗi cửa sổ liên tiếp gồm đúng kk phần tử, hãy xác định giá trị nhỏ nhất và lớn nhất.

Input

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

Output

In hai dòng. Dòng đầu là các giá trị nhỏ nhất; dòng thứ hai là các giá trị lớn nhất của các cửa sổ từ trái sang phải.

Subtask

  • Subtask 1 (20%): 1≤n≤20001 \le n \le 2000, 1≤k≤n1 \le k \le n.
  • Subtask 2 (30%): 1≤n≤1051 \le n \le 10^5, 1≤k≤n1 \le k \le n.
  • Subtask 3 (50%): 1≤n≤1061 \le n \le 10^6, 1≤k≤n1 \le k \le n.

Toàn bộ dữ liệu tuân theo: 1≤k≤n≤1061 \le k \le n \le 10^6; các phần tử nằm trong miền số nguyên 32 bit.

Ví dụ

Input

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

Output

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

Giải thích

Với k=3k=3, sáu cửa sổ lần lượt cho dãy min −1,−3,−3,−3,3,3-1,-3,-3,-3,3,3 và dãy max 3,3,5,5,6,73,3,5,5,6,7.