Trung Bình Cộng Lớn Nhất
Xem dạng PDFCho 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