Median cửa sổ trượt

Xem dưới dạng PDF

Gửi bài giải


Điểm: 10
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
đầu vào: stdin
Đầu ra: stdout

Tác giả:
Kiểu bài tập

Một nhà phân tích tài chính đang nghiên cứu biến động giá cổ phiếu của một công ty trong N ngày, mỗi ngày có giá \(A_i\). Ông ta muốn xem xét các cửa sổ thời gian liên tiếp có độ dài K và tính giá trị trung vị của mỗi cửa sổ để đánh giá xu hướng ngắn hạn.

Cụ thể, với mỗi vị trí i từ 1 đến N–K+1, xét đoạn \(A_i\)..A_{i+K-1}, hãy tìm phần tử đứng ở vị trí thứ (K+1)/2 sau khi sắp xếp (gọi là median). Với K lẻ, median là phần tử chính giữa; với K chẵn, median là phần tử thứ K/2 từ trái sang.

Đầu vào
  • Dòng đầu chứa hai số nguyên N (\(1 \le N \le 10^5\)) và K (\(1 \le K \le N\)).
  • Dòng hai chứa N số nguyên \(A_i\) (\(-10^9 \le A_i \le 10^9\)).
Đầu ra

In ra N–K+1 số nguyên là median của từng cửa sổ, cách nhau bởi khoảng trắng.

Ví dụ
Input:
8 4
5 3 8 1 7 9 2 6

Output:
3 3 7 7 6

Ràng buộc & Subtasks

Subtask Điểm Ràng buộc
1 40% Giới hạn nhỏ
2 60% Không có ràng buộc gì thêm

Nhận xét

Không có ý kiến tại thời điểm này.