문제 4326 · 바이트 V
배달 완료 알림 시점
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 배달 앱은 가게에 보여 줄 일일 운영 화면을 만들고 있다. 운영 시간은 같은 길이의 N개 구간으로 나뉘며, 각 구간이 끝날 때 그 구간에서 새로 완료된 배달 건수가 기록된다. 구간에는 시간순으로 1번부터 N번까지 번호가 붙어 있다. 앱은 이 기록을 이용하여 목표 달성 알림이 표시될 구간과 하루 전체 완료 건수를 계산하려고 한다. 입력으로 주어지는 값은 각 구간에서 새로 완료된 건수이다. 앞선 구간까지의 누적 완료 건수가 입력되는 것은 아니다. 한 배달은 완료된 구간의 기록에 정확히 한 번 포함되며, 기록이 확정된 뒤 취소되거나 다른 구간으로 옮겨지는 일은 없다. 어느 구간에도 완료된 배달이 없을 수 있으므로 구간별 기록은 0일 수 있다. 가게가 설정한 목표 완료 건수는 양의 정수 T이다. 앱은 각 구간이 끝날 때 1번 구간부터 현재 구간까지 완료된 배달 건수를 모두 더한다. 이 누적 완료 건수가 처음으로 T 이상이 된 구간에서 목표 달성 알림을 한 번 표시한다. 누적 완료 건수가 T와 정확히 같아진 경우에도 목표를 달성한 것으로 판단한다. 한 구간에서 여러 배달이 완료되어 누적 완료 건수가 목표보다 커질 수도 있다. 이때도 해당 구간이 끝나는 시점에 알림을 표시하며, 구간 안에서 배달이 완료된 세부 순서는 고려하지 않는다. 알림을 표시한 뒤에는 다시 알림을 표시하지 않지만, 남은 구간에서 완료된 배달도 하루 전체 완료 건수에는 모두 포함한다. 모든 구간이 끝날 때까지 누적 완료 건수가 T에 도달하지 못하면 알림 구간 번호를 0으로 표시한다. 실제 구간 번호는 1부터 시작하므로 0은 알림이 표시되지 않았다는 뜻으로만 사용된다. 주어진 구간별 기록을 시간순으로 처리하여 알림을 표시할 구간 번호와 N개 구간 전체의 완료 건수 합을 출력하는 프로그램을 작성한다.
입력
첫째 줄에 정수 N과 T가 공백으로 구분되어 주어진다. 1 ≤ N ≤ 100000, 1 ≤ T ≤ 1000000000이다. 둘째 줄에 각 구간에서 새로 완료된 배달 건수 A_1, A_2, ..., A_N이 시간순으로 주어진다. 모든 A_i는 0 이상 9 이하의 정수이다.
출력
목표 달성 알림을 표시할 구간 번호와 하루 전체 완료 건수를 공백으로 구분하여 한 줄에 출력한다. 목표를 달성하지 못하면 구간 번호로 0을 출력한다.
예제 입력 1
6 14 3 0 5 6 1 2
예제 출력 1
4 17
예제 입력 2
4 8 0 2 0 3
예제 출력 2
0 5
예제 입력 3
3 4 7 0 1
예제 출력 3
1 8
힌트 펼치기
- 구간을 하나 처리할 때마다 누적 완료 건수를 갱신한다.
- 목표를 처음 달성한 구간을 저장한 뒤에도 전체 합 계산은 끝까지 계속한다.
관련 서재 장
알고리즘 분류
반복누적 합구현풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |