문제 3423 · 비트 III
캠핑장 장작 주문 접수
| 시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
|---|---|---|---|---|---|
| 1000ms / 테스트 (언어별 보정은 아래 표) | 메모리: 측정하지 않음(브라우저 채점) | 0 | 0 | 0 | 0.00% |
문제
캠핑장 예약 서비스의 백엔드에서는 이용객이 신청한 장작 주문을 접수 순서대로 처리한다. 장작은 봉지 단위로 판매하며, 처리 시작 시 창고에는 S봉지가 있다. 장작 한 봉지의 판매 가격은 P원으로 고정되어 있다. 오늘 처리할 N건의 주문에는 각 이용객이 원하는 봉지 수가 기록되어 있다. 주문을 처리할 때 현재 남은 재고가 해당 주문의 요청 수량 이상이면 주문 전체를 승인한다. 승인한 즉시 요청 수량만큼 재고를 줄이고, 요청 수량에 한 봉지 가격을 곱한 금액을 매출에 더한다. 현재 재고가 요청 수량보다 적으면 주문 전체를 거절한다. 거절한 주문은 재고와 매출을 바꾸지 않는다. 요청 수량 중 일부만 판매하는 것은 허용하지 않는다. 주문은 반드시 입력된 순서대로 처리한다. 먼저 들어온 주문을 거절했더라도 뒤에 들어온 더 작은 주문은 남은 재고로 승인할 수 있다. 반대로 뒤에 들어올 주문을 위해 현재 승인할 수 있는 주문을 일부러 거절할 수는 없다. 처리 중에는 장작이 추가로 입고되지 않으며, 승인한 주문의 취소나 환불도 발생하지 않는다. 세금, 할인, 배송비 등 판매 가격 이외의 금액은 고려하지 않는다. 모든 주문을 처리한 뒤 승인한 주문 건수, 총매출, 남은 재고를 집계하려 한다. 승인 건수는 판매한 봉지 수가 아니라 승인된 주문의 수다. 시작 재고가 0이거나 모든 주문이 거절되는 경우도 있을 수 있다. 이때 승인 건수와 총매출은 모두 0이다. 별도의 주문 선택이나 동점 처리는 없으며, 정해진 처리 규칙으로 집계 결과가 하나로 결정된다. 최종 집계 결과를 출력하는 프로그램을 작성한다.
입력
첫째 줄에 정수 N, S, P가 공백으로 구분되어 주어진다. 다음 N개 줄에는 각 주문의 요청 수량을 나타내는 정수 A가 하나씩 주어진다. 1 ≤ N ≤ 1,000, 0 ≤ S ≤ 1,000,000, 1 ≤ P ≤ 1,000,000, 1 ≤ A ≤ 1,000이다. 금액의 단위는 원이다.
출력
승인한 주문 건수, 총매출, 남은 장작 봉지 수를 순서대로 한 줄에 공백으로 구분하여 출력한다. 모든 값은 정수로 출력한다.
예제 입력 1
5 7 1200 3 5 2 2 1
예제 출력 1
3 8400 0
예제 입력 2
3 0 500 1 1 2
예제 출력 2
0 0 0
예제 입력 3
3 10 700 11 4 3
예제 출력 3
2 4900 3
힌트 펼치기
- 현재 재고를 저장하고 주문을 입력 순서대로 확인한다.
- 승인한 경우에만 승인 건수와 매출을 늘린다.
알고리즘 분류
구현시뮬레이션풀이 작성
연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.
풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.
연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.
이 브라우저의 연습 기록
언어별 제한
테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.
| 언어 | 엔진(버전) | 시간 제한 | 메모리 |
|---|---|---|---|
| javascript | 사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름) | 1000ms / 테스트 | 측정하지 않음(브라우저 채점) |
| python | Pyodide 314.0.7 (CPython 3.14 WASM) | 5000ms / 테스트 | 측정하지 않음(브라우저 채점) |