문제 3939 · 비트 I
추가 무대의 약속
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
한 공연장은 정규 공연이 진행되는 동안 관객에게 추가 무대를 신청할 기회를 준다. 정규 공연에는 순서가 정해진 N개의 무대가 있으며, 각 무대가 끝날 때마다 그 무대를 본 관객의 신청을 한꺼번에 집계한다. 진행자는 공연이 시작되기 전에 목표 신청 수 K를 정하고, 누적 신청 수가 처음으로 목표 이상이 되는 순간 추가 무대가 확정되었다고 알리기로 했다. 공연 시작 전의 누적 신청 수는 0이다. i번째 무대가 끝나면 그 무대에서 새로 접수한 A_i개의 신청을 기존 누적 신청 수에 더한다. 같은 관객이 서로 다른 무대에서 신청한 것도 각각 별개의 신청으로 센다. 신청을 취소하거나 이전에 센 신청을 빼는 일은 없다. 새 신청이 하나도 없는 무대도 있을 수 있으며, 이때 누적 신청 수는 그대로 유지된다. 추가 무대의 확정 여부는 각 무대의 신청을 모두 더한 직후에만 확인한다. 한 무대의 신청을 하나씩 세는 도중에는 확인하지 않는다. 따라서 목표를 처음 채운 무대의 집계가 끝났을 때 누적 신청 수가 목표보다 클 수도 있다. 누적 신청 수가 목표와 정확히 같아진 경우에도 추가 무대는 확정된다. 진행자가 기록하려는 것은 추가 무대가 처음 확정된 정규 무대의 번호와, 그때 목표를 초과한 신청 수다. 초과한 신청 수는 확정 시점의 누적 신청 수에서 K를 뺀 값이다. 확정 이후의 무대에서 들어온 신청은 이 기록을 바꾸지 않는다. 추가 무대가 확정되어도 예정된 정규 무대는 모두 진행하므로 입력에는 항상 N개 무대의 신청 수가 주어진다. 모든 정규 무대가 끝날 때까지 목표에 도달하지 못할 수도 있다. 각 무대의 신청 수가 주어질 때 진행자가 남길 두 정수를 구하는 프로그램을 작성한다.
입력
첫째 줄에 정수 N과 K가 공백으로 구분되어 주어진다. 1≤N≤1,000이고, 1≤K≤1,000,000이다. 둘째 줄에 각 무대에서 새로 접수한 신청 수를 나타내는 정수 A_1, A_2, …, A_N이 공백으로 구분되어 주어진다. 0≤A_i≤1,000이다. 무대 번호는 입력에 주어진 순서대로 1부터 N까지다.
출력
목표에 처음 도달한 무대의 번호와 그때 목표를 초과한 신청 수를 공백으로 구분하여 한 줄에 출력한다. 모든 무대가 끝나도 목표에 도달하지 못하면 -1 0을 출력한다.
예제 입력 1
5 12 3 0 4 8 2
예제 출력 1
4 3
예제 입력 2
3 10 2 3 4
예제 출력 2
-1 0
예제 입력 3
4 5 5 0 7 1
예제 출력 3
1 0
힌트 펼치기
- 신청 수를 앞에서부터 더하며 합이 처음 K 이상이 되는 위치를 찾는다.
관련 서재 장
알고리즘 분류
구현누적 합풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |