728x90
풀이
배열의 prefix sum을 계산해준다.
n개의 보석만큼 반복문을 돌리는데 다음 계산의 최댓값이 정답이 된다.
보석 i번째까지 전부 먹었을 때 누적합 - 이전 구간에서 최대로 손해를 입는 누적합
구현에서는 이전 구간에서 최대로 손해를 입는 누적합을 저장하기 위해 별도의 변수를 두었다.
전체 코드
더보기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include <bits/stdc++.h>
using namespace std;
int ar[100001];
int prefix[100001];
int n, m;
int res;
int main()
{
cin.tie(0); ios::sync_with_stdio(false);
cin >> n >> m;
for (int i = 1; i <= n; ++i)
{
cin >> ar[i];
prefix[i] = prefix[i - 1] + ar[i];
}
int val = 0;
for (int i = m; i <= n; ++i)
res = max(res, prefix[i] - (val = min(prefix[i - m], val)));
cout << res;
}
|
cs |
728x90
'백준 > 탐색' 카테고리의 다른 글
[KOI] 백준 2502 - 떡 먹는 호랑이 (0) | 2022.05.26 |
---|---|
백준 4160 - 이혼 (0) | 2022.01.16 |
[ICPC] 백준 20047 - 동전 옮기기 (0) | 2021.10.09 |
백준 1208 - 부분수열의 합 2 (0) | 2021.01.23 |
[COCI] 백준 3020 - 개똥벌레 (0) | 2021.01.04 |