문제 4910 · 메가 V
상영실의 공통 연장 시간
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 영화관에서 특별 상영회를 준비한다. 상영할 영화 N편에는 반드시 지켜야 하는 순서가 있으며, 이 순서대로 1번부터 N번까지 번호가 붙어 있다. 영화관은 상영실 M개를 정해진 순서로 사용한다. 각 상영실에는 원래 사용할 수 있는 시간이 정해져 있고, 상영실마다 이 시간은 다를 수 있다. 운영자는 모든 영화를 상영실에 나누어 배정하려고 한다. 각 영화는 정확히 하나의 상영실에서 처음부터 끝까지 상영해야 하며, 영화를 나누어 상영할 수 없다. 같은 상영실에 배정된 영화들은 영화 번호순으로 상영한다. 또한 앞선 상영실에 배정된 모든 영화의 번호는 뒤의 상영실에 배정된 모든 영화의 번호보다 작아야 한다. 따라서 영화를 배정받은 상영실은 전체 영화 순서에서 연속한 구간을 담당하게 된다. 어떤 상영실에는 영화를 한 편도 배정하지 않아도 된다. 같은 상영실에서 연이어 두 영화를 상영할 때는 정확히 B분의 정리 시간이 필요하다. 첫 영화 전과 마지막 영화 후에는 정리 시간이 필요하지 않다. 영화가 k편 배정된 상영실의 사용 시간은 k가 양수이면 그 영화들의 상영 시간 합에 B×(k-1)을 더한 값이며, k가 0이면 0분이다. 서로 다른 상영실 사이에는 별도의 정리 시간을 더하지 않는다. 필요하다면 영화관은 모든 상영실의 사용 가능 시간을 같은 정수 X분만큼 연장할 수 있다. j번 상영실의 원래 사용 가능 시간이 C_j분이면 연장 후에는 C_j+X분까지 사용할 수 있다. 사용 시간이 이 값과 정확히 같아도 배정할 수 있다. 연장 시간 X는 0 이상의 정수이며, 영화를 배정하지 않은 상영실에도 같은 연장 규칙이 적용된다. 영화 순서와 상영실 순서를 유지하면서 모든 영화를 상영할 수 있도록 하는 가장 작은 X를 구한다. 상영실에 배정할 영화 수가 같을 필요는 없다. 연장 시간에는 별도의 상한이 없고 상영실이 적어도 하나 있으므로 가능한 배정은 항상 존재한다. 실제 배정 방법은 출력하지 않는다.
입력
첫째 줄에 정수 N, M, B가 공백으로 구분되어 주어진다. 1 ≤ N ≤ 16,000, 1 ≤ M ≤ 16,000, 0 ≤ B ≤ 1,000,000이다. 둘째 줄에 영화 순서대로 상영 시간 A_1, A_2, ..., A_N이 주어진다. 각 A_i는 1 이상 1,000,000 이하의 정수다. 셋째 줄에 상영실 순서대로 원래 사용 가능 시간 C_1, C_2, ..., C_M이 주어진다. 각 C_j는 0 이상 1,000,000 이하의 정수다. 시간의 단위는 모두 분이다.
출력
모든 영화를 규칙에 맞게 배정할 수 있는 가장 작은 공통 연장 시간 X를 정수 하나로 출력한다.
예제 입력 1
4 2 2 4 3 5 2 6 7
예제 출력 1
3
예제 입력 2
3 3 4 8 2 3 1 8 9
예제 출력 2
0
예제 입력 3
3 1 5 2 2 2 0
예제 출력 3
16
힌트 펼치기
- 연장 시간을 고정했을 때, 각 상영실에 남은 영화의 앞부분을 가능한 한 많이 배정해도 되는지 생각한다.
- 가능한 연장 시간이 정해지면 그보다 큰 연장 시간도 가능하다는 성질을 이용한다.
관련 서재 장
알고리즘 분류
이분 탐색매개변수 탐색그리디풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |