문제 4288 · 킬로 V
망원경 냉각 시간표
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
산속 천문대는 한 대의 망원경으로 밤하늘을 관측한다. 오늘 밤의 운영 시간은 길이가 같은 N개의 시간 칸으로 나누어져 있으며, 시간순으로 1번부터 N번까지 번호가 붙어 있다. 천문대는 각 시간 칸에 관측을 수행했을 때 얻을 수 있는 자료의 가치를 미리 계산했다. 이 값은 구름의 양과 관측 대상의 위치를 반영한 정수이며, 관측 조건이 나쁜 시간에는 음수가 될 수도 있다. 망원경은 한 시간 칸 동안 관측을 수행하면 바로 다음 시간 칸 전체를 냉각에 사용해야 한다. 냉각 중에는 관측할 수 없으므로, 번호가 연속한 두 시간 칸을 모두 관측 시간으로 선택할 수 없다. 한 칸 이상을 비워 두었다면 그 뒤에는 다시 관측할 수 있다. 관측하지 않는 시간에는 별도의 자료 가치가 생기지 않으며, 냉각을 위한 추가 비용도 없다. 첫 번째 시간 칸이 시작되기 전에는 망원경이 충분히 냉각되어 있다고 가정한다. 천문대는 각 시간 칸을 통째로 관측하거나 관측하지 않아야 한다. 한 시간 칸을 나누어 일부만 관측할 수 없고, 다른 시간 칸으로 관측을 옮길 수도 없다. 마지막 시간 칸을 관측한 경우 그 뒤의 냉각 시간은 오늘 밤의 운영 시간에 포함되지 않으므로 별도로 고려하지 않는다. 선택한 시간 칸들의 자료 가치를 모두 더한 값이 오늘 얻는 총가치가 된다. 운영자는 냉각 규칙을 지키면서 총가치가 가장 커지는 시간표를 만들려고 한다. 관측을 한 번도 하지 않는 시간표도 허용하며, 이때 총가치는 0이다. 따라서 모든 관측 조건이 나쁘다면 아무것도 관측하지 않는 것이 최선일 수 있다. 각 시간 칸의 자료 가치가 주어질 때 가능한 총가치의 최댓값을 구한다. 같은 최댓값을 만드는 시간표가 여러 개라도 관측 횟수나 선택한 시간 칸의 번호는 비교하지 않으며, 최댓값만 출력한다.
입력
첫째 줄에 시간 칸의 개수 N이 주어진다. 둘째 줄에 각 시간 칸의 자료 가치 V_1, V_2, ..., V_N이 공백으로 주어진다. 1 ≤ N ≤ 30,000 -100,000 ≤ V_i ≤ 100,000 입력의 모든 수는 정수이다.
출력
냉각 규칙을 지키는 시간표로 얻을 수 있는 총가치의 최댓값을 한 줄에 출력한다. 관측할 시간 칸을 선택하지 않는 경우의 총가치는 0이다.
예제 입력 1
6 8 12 7 -3 10 9
예제 출력 1
25
예제 입력 2
4 -5 -2 -8 -1
예제 출력 2
0
예제 입력 3
1 17
예제 출력 3
17
힌트 펼치기
- 앞에서부터 i개 시간 칸만 고려했을 때의 최댓값을 생각한다.
- 마지막 시간 칸을 관측한다면 바로 앞 시간 칸은 관측할 수 없다.
관련 서재 장
알고리즘 분류
동적 계획법풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |