문제 링크: https://algospot.com/judge/problem/read/FESTIVAL
종만북 맨 처음에 있는 문제입니다.
누적합을 쓰면 효율적입니다.
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(nullptr), cout.tie(nullptr);
int t;
cin >> t;
while (t--) {
int N, L;
cin >> N >> L;
vector<int> c_sum(N+1); // 누적합: 0, ...
for (int i = 1; i <= N; ++i) {
cin >> c_sum[i];
c_sum[i] += c_sum[i - 1];
}
double min_avg = 1e9;
for (int width = N; width >= L; --width) {
for (int i = 0; i < N - width + 1; ++i) {
min_avg = min(min_avg, (c_sum[i+width] - c_sum[i]) / (double)width);
}
}
cout << setprecision(8) << fixed << min_avg << '\n';
}
return 0;
}
0번 인덱스에는 0을 넣어 아무것도 넣지 않았을 때의 값을 저장해 썼습니다.
반응형
'Online Judge > 알고스팟' 카테고리의 다른 글
[알고스팟][C++] LIS: Longest Increasing Subsequence (0) | 2020.08.21 |
---|---|
[알고스팟][C++] JUMPGAME: 외발 뛰기 (0) | 2020.08.20 |
[알고스팟][C++] FIRETRUCKS: 소방차 (0) | 2020.06.22 |
[알고스팟][C++] ROUTING: 신호 라우팅 (0) | 2020.06.20 |
[알고스팟][C++] WORDCHAIN: 단어 제한 끝말잇기 (0) | 2020.05.17 |