Cửa sổ trượt

Xem dạng PDF

Gửi bài giải

Điểm: 4,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài

Cho một dãy có độ dài ~N~, một cửa sổ trượt có độ dài ~K~ di chuyển từ ngoài cùng bên trái sang ngoài cùng bên phải, bạn chỉ có thể thấy ~K~ số trong cửa sổ, mỗi lần cửa sổ trượt di chuyển sang phải một vị trí, như được hiển thị bên dưới:

Vị trí cửa sổ Giá trị nhỏ nhất Giá trị lớn nhất
~\texttt{[1 3 -1] -3 5 3 6 7}~ ~-1~ ~3~
~ \ \texttt{ 1 [3 -1 -3] 5 3 6 7}~ ~-3~ ~3~
~ \ \texttt{ 1 3 [-1 -3 5] 3 6 7}~ ~-3~ ~5~
~ \ \texttt{ 1 3 -1 [-3 5 3] 6 7}~ ~-3~ ~5~
~ \ \texttt{ 1 3 -1 -3 [5 3 6] 7}~ ~3~ ~6~
~ \ \texttt{ 1 3 -1 -3 5 [3 6 7]}~ ~3~ ~7~

Nhiệm vụ của bạn là tìm các giá trị lớn nhất và nhỏ nhất trong cửa sổ tại mỗi vị trí.

Dữ liệu vào:

  • Dòng đầu tiên chứa hai số nguyên ~N~ và ~K~ là độ dài của dãy và cửa sổ trượt.
  • Dòng thứ hai chứa ~N~ số nguyên. ~(\leq 2\times10^9)~.

Dữ liệu ra:

  • Dòng đầu tiên cho biết các giá trị nhỏ nhất trong cửa sổ tại mỗi vị trí, lần lượt từ trái sang phải.
  • Dòng thứ hai cho biết các giá trị lớn nhất trong cửa sổ tại mỗi vị trí, lần lượt từ trái sang phải.

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 hạn:

  • ~20\%~, với ~K\leq N\leq 1000~;
  • ~50\%~, với ~K\leq N\leq 10^5~;
  • ~100\%~, với ~K\leq N\leq 10^6~.

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.