개발_기록용

[Codeforce 1003C] C. Intense Heat 본문

알고리즘

[Codeforce 1003C] C. Intense Heat

나폴나폴 2024. 3. 15. 14:10
728x90

https://codeforces.com/problemset/problem/1003/C

 

Problem - 1003C - Codeforces

 

codeforces.com

 

알고리즘연습 2024.03.15

<유형>

다이나믹 프로그래밍

프리픽스 썸 (Prefix Sum)

 

<배운점 정리>

1. not less than k

= k 이상

 

2. k 이상의 연속적인 날들의 평균치 였으므로 k개의 연속적인 날만 확인하면 안되고,

최대 n개의 날들의 평균치까지 함께 고려해야 함.

 

3. cout.precision(15); 를 먼저 선언하면

cout할 때 소수점 이하 15자리까지 출력이 가능하다.

 

아래는 정답 코드


#include <iostream>

using namespace std;
int main()
{
	ios_base::sync_with_stdio(false);
	cin.tie(0);
	int n, k;
	cin >> n >> k;

	long long A[5005];
	long long P[5005];

	A[0] = 0;
	long long a;

	P[0] = 0;
	for (int i = 1; i <= n; i++)
	{
		cin >> a;
		A[i] = a;	
		P[i] = P[i - 1] + A[i];
	}

	double ans = 0.0;

	for (int j = k; j <= n; j++)
	{
		for (int i = 1; i <= n - j + 1; i++)
		{
			ans = max(ans, (double)(P[i + j - 1] - P[i-1])/(double)j);
		}		
	}

	cout.precision(15);
	cout << ans;
}
반응형
Comments