문제 4155 · 바이트 V
가장 늦어진 통과 지점
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
마라톤 대회의 한 참가자는 자신의 속도 변화를 살펴보기 위해 코스를 N개의 구간으로 나누었다. 출발점부터 첫 번째 측정 지점까지가 1번 구간이고, 이후 인접한 두 측정 지점 사이가 차례로 다음 구간이다. 마지막 측정 지점은 결승점이다. 참가자는 모든 구간을 각각 T초 안에 달리는 일정한 목표를 세웠다. 따라서 i번 측정 지점의 목표 통과 시각은 출발 후 i×T초다. 대회가 끝난 뒤 기록 장치에서 각 구간을 실제로 달리는 데 걸린 시간을 받았다. i번 구간의 기록 a_i는 바로 앞 측정 지점을 지난 뒤 i번 측정 지점에 도착할 때까지 걸린 시간이다. 출발 후의 통과 시각이 직접 주어지는 것은 아니다. 그러므로 i번 측정 지점의 실제 통과 시각은 1번부터 i번 구간까지 걸린 시간을 모두 더한 값이다. 출발 시각은 0초이며, 별도의 대기 시간이나 기록 보정은 없다. 어떤 측정 지점의 실제 통과 시각이 목표 통과 시각보다 크면 그 지점에서 목표보다 늦었다고 한다. 늦어진 시간은 실제 통과 시각에서 목표 통과 시각을 뺀 값이다. 두 시각이 같거나 실제 통과 시각이 더 이르면 그 지점은 늦어진 지점에 포함하지 않는다. 한 구간을 목표 시간보다 빠르게 달리면 앞에서 생긴 지연을 줄일 수 있으므로, 개별 구간의 기록만 비교해서는 전체 지연을 알 수 없다. 참가자는 늦어진 시간이 가장 컸던 측정 지점을 훈련 기록에 남기려 한다. 여러 지점에서 같은 최대 지연이 나타나면 번호가 가장 작은 지점 하나를 선택한다. 모든 측정 지점을 목표 시각 이내에 통과했다면 선택할 지점이 없는 것으로 처리한다. 선택한 지점의 번호와 그 지점에서 늦어진 시간을 구해야 한다.
입력
첫째 줄에 구간 수 N과 구간당 목표 시간 T가 공백으로 구분되어 주어진다. N은 1 이상 80,000 이하의 정수이고, T는 1 이상 999 이하의 정수다. 둘째 줄에 각 구간의 실제 소요 시간 a_1, a_2, ..., a_N이 공백으로 구분되어 주어진다. 각 a_i는 1 이상 999 이하의 정수이며 단위는 초다.
출력
가장 크게 늦어진 측정 지점의 번호와 그 지점의 지연 시간을 공백으로 구분하여 출력한다. 최대 지연 시간이 같은 지점이 여러 개면 가장 작은 번호를 출력한다. 늦어진 지점이 하나도 없으면 0 0을 출력한다. 지연 시간은 초 단위의 정수로 출력한다.
예제 입력 1
5 10 12 8 15 5 15
예제 출력 1
3 5
예제 입력 2
4 7 5 8 7 8
예제 출력 2
0 0
예제 입력 3
3 4 6 6 6
예제 출력 3
3 6
힌트 펼치기
- 현재 지점까지의 실제 소요 시간을 누적하면 목표 통과 시각과 비교할 수 있다.
- 최대 지연이 더 커질 때만 정답을 갱신하면 동점 규칙도 처리할 수 있다.
관련 서재 장
알고리즘 분류
구현누적 합풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |