연습문제

[한양대 HCPC 2023] Pipelined

난이도
Lv. 3
제출
371 명
참가자
234 명
정답률
63.77 %
지원 언어
C#
C
C++
Java
Python
JavaScript
Kotlin
Swift
Go
Rust
언어별 시간/메모리
언어별 시간/메모리 표
언어 시간 메모리
C++ 1초 1024MB
JavaScript 5초 1024MB
C 1초 1024MB
Java 3초 1024MB
Python 5초 1024MB
Kotlin 3초 1024MB
Swift 1초 1024MB
C# 3초 1024MB
Go 1초 1024MB
Rust 1초 1024MB

현대자동차에서 근무하고 있는 로하는 주어진 작업 슬롯 하나로 개의 자동차를 생산하는 공정을 계획하려 한다. 각 번째 자동차는 생산하기 위해 단계의 생산 프로세스를 거쳐야 한다. 작업 슬롯은 수직선상에서 로 표현할 수 있으며, 번째 자동차 생산이 진행 중인 경우 이 중 크기의 반열린 구간을 차지한다. 초부터 시작해서 초마다 다음과 같은 일이 순서대로 일어난다.

  • 먼저 할당된 생산 프로세스부터, 작업 슬롯의 모든 생산 프로세스들은 자신의 크기만큼 뒤로 움직인다. 즉, 작업 슬롯의 전체 구간을 로 표현했을 때, 번째 생산 프로세스가 의 구간을 차지하고 있었다면, 이동 후 의 구간을 차지하게 된다. 단, 이동 시 다른 생산 프로세스가 차지하는 구간과 겹치게 되는 경우에는 움직이지 않는다. 슬롯을 통과하여 밖으로 나온 경우 이 생산 프로세스는 완료된 것이며, 더 이상 공간을 차지하지 않는다.
  • 로하는 아직 할당하지 않은 생산 프로세스 중 하나를 골라 슬롯에 할당하거나 할당하지 않을 수 있다. 번째 생산 프로세스를 할당할 경우 슬롯의 부분에 생산 프로세스를 할당한다. 단, 다른 생산 프로세스가 차지하고 있는 구간과 겹치는 경우 할당할 수 없다.

모든 자동차가 작업 슬롯을 거쳐 생산될 때까지 걸리는 최소 시간이 몇 초인지 구하여라.

노트:

반열린구간 이상 미만의 모든 수를 포함하는 구간이다.

제약조건

입력형식

첫 번째 줄에 생산해야 하는 자동차의 개수 이 주어진다.

두 번째 줄에 개의 자동차의 생산 프로세스에 대한 각각의 단계 수 가 공백으로 구분되어 주어진다.

출력형식

첫 번째 줄에, 모든 자동차가 작업 슬롯을 거쳐 끝날 때까지 걸리는 최소 시간을 초 단위로 출력한다.

입력예제1

4 5 7 8 11

출력예제1

14

입력예제2

1 200000

출력예제2

200000