Trung Bình Cộng Lớn Nhất

Xem dạng PDF

Gửi bài giải

Điểm: 1,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 dãy số nguyên A có N phần tử và số nguyên K. Hãy tìm giá trị trung bình cộng lớn nhất của K phần tử liên tiếp trong dãy. Giá trị trung bình của đoạn từ i đến i + K - 1 được tính bằng: (Ai + Ai+1 + ... + Ai+K-1)/K.


Input:

• Dòng đầu tiên chứa N và K (1 ≤ K ≤ N ≤ 10^5).

• Dòng thứ hai chứa N số nguyên A; (-10^4 ≤ Ai ≤ 10^4).


Output:

• In ra giá trị trung bình lớn nhất. Kết quả có thể là số thực (hệ thống chấm chấp nhận sai số 10^-5).

• Lưu ý khi code: Với C++, dùng fixed và setprecision(5) để in.

Gợi ý thuật toán: Về mặt toán học, vì K là hằng số dương, nên để Trung bình lớn nhất thì Tổng của K phần tử phải lớn nhất. Ta tìm tổng lớn nhất của cửa sổ K phần tử (Sliding Window), sau đó lấy tổng đó chia cho K (ép kiểu sang số thực).


Vi dụ:

Test 1:

Input:
4 4
1 12 -5 -6
Output:
0.50000

Test 1:

Input:
6 3
1 12 -5 -6 50 3
Output:
15.66667

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.