연습문제
[한양대 HCPC 2023] Pipelined
- 난이도
- Lv. 3
- 제출
- 77 명
- 참가자
- 48 명
- 정답률
- 65.57 %
- 지원 언어
-
C#CC++JavaPythonJavaScriptKotlinSwiftGoRust
로그인 후 문제풀이가 가능합니다.
언어별 시간/메모리
언어 | 시간 | 메모리 |
---|---|---|
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