RiseOJ는 solved.ac와 제휴 관계가 없습니다. 티어 아이콘 © solved.ac. solved.ac
포럼
R01306

길이 제한 최대 구간 합

Silver I 실버 I
난이도
2s
시간 제한
256MB
메모리 제한
0
맞았습니다!!
0
제출 수
0.0%
정답률
레이팅

의견: 0

설명

주식 분석가 민준이는 \(N\)일간의 일별 손익 기록을 가지고 있다. 민준이는 연속된 날의 손익 합이 최대가 되는 투자 구간을 찾고 싶다. 단, 투자 기간은 \(L\)일 이상 \(R\)일 이하여야 한다.

정확히 말하면, 길이가 \(L\) 이상 \(R\) 이하인 연속 부분 수열의 합의 최댓값을 구하여라.

제약
  • \(1 \le L \le R \le N \le 200\,000\)
  • \(-10^9 \le a_i \le 10^9\)
입력 형식

첫째 줄에 일수 \(N\), 최소 기간 \(L\), 최대 기간 \(R\)이 공백으로 구분되어 주어진다.

둘째 줄에 \(N\)일간의 일별 손익 \(a_1, a_2, \dots, a_N\)이 공백으로 구분되어 주어진다.

출력 형식

길이가 \(L\) 이상 \(R\) 이하인 연속 부분 수열의 합의 최댓값을 출력한다.

예제 1
입력
6 2 4
1 -2 3 4 -1 2
출력
8
설명

길이 \(2\) 이상 \(4\) 이하의 모든 연속 부분 수열 중 합이 최대인 것을 찾는다. 구간 \([3, 4, -1, 2]\) (길이 \(4\))의 합은 \(8\)이고, 구간 \([3, 4]\) (길이 \(2\))의 합도 \(7\)이다. 최대 합은 \(8\)이다.

예제 2
입력
4 1 2
-1 -2 -3 -4
출력
-1
설명

모두 음수이므로 길이가 짧을수록 유리하다. 길이 \(1\) 구간 중 최댓값은 \(-1\)이다.

예제 3
입력
1 1 1
5
출력
5
설명

원소가 하나이므로 길이 \(1\) 구간 \([5]\)의 합 \(5\)가 답이다.

힌트

막혔나요? 코인으로 단계별 힌트를 잠금 해제하세요 — 첫 힌트는 가벼운 방향 제시, 뒤로 갈수록 더 많이 알려 줍니다. 문제를 풀면 모든 힌트가 무료로 공개됩니다.

문제 정보

riseoj 작성

출처 Original

평가 및 의견

길이 제한 최대 구간 합

개요
출제자 난이도 Silver I 실버 I 의견 0 / 50 공개 집계 (커뮤니티 난이도, 주요 주제, 품질)는 의견이 충분히 모이면 공개됩니다.

Log in to rate problems.

개별 의견

아직 의견이 없습니다. 자격이 된다면 위 양식에서 가장 먼저 평가해 보세요.

풀이 제출

길이 제한 최대 구간 합

게스트로 둘러보고 있습니다. 로그인하면 풀이를 제출하고 진행 상황을 확인할 수 있습니다. 로그인하고 제출하기
공개
C++20 Tab 들여쓰기 · Ctrl+/ 주석 토글 · Enter 자동 들여쓰기
1 1 1 0 공백: 4 · UTF-8