본문으로 이동
코드패스 by Devin.KR

문제 5046 · 킬로 III

관측 자료 묶음 청구

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

한 날씨 관측소는 외부 사용자가 요청한 관측 자료를 시간 구간별 파일로 제공한다. 백엔드 담당자는 한 사용자의 자료 이용 내역을 받아 최종 청구액을 계산해야 한다. 이용 내역에는 시간순으로 정렬된 N개의 항목이 있으며, i번째 항목의 기본요금은 A_i원이다. 모든 항목은 반드시 제공해야 하므로, 요금을 줄이기 위해 항목을 삭제하거나 순서를 바꿀 수는 없다. 관측소는 인접한 두 항목을 하나의 묶음으로 처리할 때 할인을 제공한다. 원래 이용 내역에서 번호가 연속한 i번 항목과 i+1번 항목을 묶으면, 두 기본요금 중 작은 금액만큼 할인받는다. 따라서 이 묶음의 할인 후 요금은 두 기본요금 중 큰 금액과 같다. 두 기본요금이 같아도 같은 규칙을 적용하며, 기본요금이 0원인 항목도 묶음에 넣을 수 있다. 하나의 항목은 최대 하나의 묶음에만 포함될 수 있다. 예를 들어 2번과 3번을 묶었다면 1번과 2번 또는 3번과 4번을 추가로 묶을 수 없다. 다만 4번과 5번을 추가로 묶는 것은 가능하다. 묶음을 여러 개 선택하거나 하나도 선택하지 않을 수 있으며, 묶음에 포함되지 않은 항목에는 기본요금이 그대로 부과된다. 다른 묶음을 선택한 뒤 남은 항목들이 서로 이웃하게 되더라도, 원래 번호가 연속하지 않았다면 새 묶음으로 만들 수 없다. 세금은 항목별이나 묶음별로 계산하지 않는다. 먼저 모든 기본요금의 합에서 선택한 묶음들의 할인액을 뺀 금액을 B원이라고 한다. 전체 이용 내역에 대한 세금은 B를 10으로 나눈 몫이며, 나머지는 버린다. 최종 청구액은 B와 이 세금의 합이다. 이 문제에서는 이 규칙 외의 할인이나 추가 요금은 없다. 이용 내역이 주어졌을 때 가능한 최종 청구액 중 최솟값을 구한다. 최솟값을 만드는 묶음 선택이 여러 가지여도 청구액만 출력한다.

입력

첫째 줄에 항목의 개수 N이 주어진다.
둘째 줄에 기본요금 A_1, A_2, ..., A_N이 공백으로 구분되어 주어진다.
모든 입력값은 정수이며, 1 ≤ N ≤ 200,000, 0 ≤ A_i ≤ 1,000,000이다.

출력

가능한 최종 청구액의 최솟값을 원 단위의 정수 하나로 출력한다. 묶음을 선택할 수 없는 경우에도 같은 계산 규칙을 적용한다.

예제 입력 1

4
8 5 7 9

예제 출력 1

18

예제 입력 2

3
6 10 10

예제 출력 2

17

예제 입력 3

1
0

예제 출력 3

0
힌트 펼치기
  • 앞에서부터 i개 항목을 처리했을 때 얻을 수 있는 최대 할인액을 생각한다. i번째 항목을 묶지 않는 경우와 i-1번째 항목과 묶는 경우로 나눌 수 있다.

출처: Devin.KR 자체 제작

알고리즘 분류동적 계획법

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)