그런데 0.5배 A 버튼으로 할 수 있나요?

시간 제한1초메모리 제한512 MB

요약
각 스테이지의 A 버튼 필요 횟수가 0.5 단위로 주어질 때, A를 누른 상태를 다음 스테이지로 이어갈 수 있다는 점을 이용해 모든 스테이지를 순서대로 클리어하는 최소 총 입력 횟수를 구한다.
난이도

보통10점 중 4점

유형
그리디, 수학, 구현
정답자
아직 제출이 없습니다

문제

오랫동안 "Super OOOOO 64"라는 게임을 해 온 사람들 중에는 게임을 깨는 데 필요한 A 버튼의 최소 횟수를 연구하는 사람들이 있다. 각 스테이지를 깨는 데 필요한 A 버튼의 최소 횟수를 알고 있을 때, 모든 스테이지를 차례대로 깨는 데 필요한 A 버튼의 최소 횟수를 구하려고 한다. 스테이지별 A 버튼 횟수는 0.5의 배수로 표시된다.

여기서 "A 버튼을 누르면 눌렀지 반만 누르는 게 어딨어요?"라는 생각이 들 수도 있다. 물론 버튼을 정말로 반만 누르는 것은 존재하지 않으니 반은 맞는 말이다.

음이 아닌 정수 x에 대해 x+0.5는 A 버튼을 x+0.5번 누르라는 뜻이 아니라, A 버튼을 누른 채로 스테이지를 시작한 뒤 A 버튼을 x번 더 누르라는 뜻이다. 그 스테이지만 골라서 깨려고 한다면 A 버튼을 총 x+1번 눌러야 하지만, A 버튼을 누른 채로 이전 스테이지를 깨고 그 상태로 다음 스테이지를 시작한 경우라면 x번만 눌러도 된다. A 버튼을 계속 누르고 있다고 해서 오는 부작용이나 제약은 없다.

입력

첫째 줄에 스테이지의 개수 N이 주어진다. N은 1 이상 1000 이하이다. 다음 줄에는 각 스테이지를 깨는 데 필요한 A 버튼의 최소 횟수가 주어진다. 모두 0.5의 배수이며, 0 이상 1000 이하이다. 정수일 경우 소수점 없이 주어지며, 정수가 아닐 경우 소수 첫째 자리까지 주어진다.

출력

모든 스테이지를 차례대로 깨는 데 필요한 A 버튼의 최소 횟수를 출력한다.

예제2

  1. 예제 1

    입력
    5
    0.5 1.5 0 1.5 1
    
    예상 출력
    4
    
  2. 예제 2

    입력
    4
    0.5 0.5 0.5 0.5
    
    예상 출력
    1