본문으로 이동
코드패스 by Devin.KR

문제 3405 · 비트 III

카페의 마지막 진열 수량

인증 제출 통계 · 5분마다 갱신 · 정답 비율 = 정답 제출 / 전체 제출
시간 제한메모리 제한제출정답맞힌 사람정답 비율
1000ms / 테스트 (언어별 보정은 아래 표)메모리: 측정하지 않음(브라우저 채점)0000.00%

문제

작은 카페에서는 영업을 마치기 전에 진열대에 남은 구움 과자의 수량을 확인한다. 진열대에서 판매하는 과자의 종류는 N가지이며, 각 종류에는 1번부터 N번까지 번호가 붙어 있다. 번호는 진열 위치와 관계없이 하루 동안 유지된다. 영업 종료 전 마지막 주문을 받기 시작할 때, i번 과자는 A_i개 남아 있다. 직원은 손님이 요청한 과자 번호를 시간순으로 기록했다. 기록에는 모두 M개의 요청이 있으며, 각 요청은 특정 종류의 과자 한 개를 구매하려는 요청이다. 같은 번호가 여러 번 등장할 수 있고, 그 요청들이 연속해서 들어올 수도 있다. 한 요청에서 여러 개를 구매하는 경우는 없다. 직원은 기록된 순서대로 요청을 하나씩 처리한다. 요청한 종류의 과자가 한 개 이상 남아 있으면 그 과자를 한 개 판매하여 해당 종류의 남은 수량을 1 줄인다. 요청한 종류가 이미 모두 팔렸다면 그 요청에서는 아무 과자도 판매하지 않는다. 이 경우 다른 종류의 과자로 대신 제공하거나, 나중에 같은 종류가 생길 때까지 요청을 보류하지 않는다. 다음 요청은 바로 이어서 처리한다. 마지막 주문을 처리하는 동안 새 과자를 진열하거나 판매한 과자를 돌려받는 일은 없다. 따라서 각 종류의 수량은 판매할 때만 줄어들며, 어떤 종류의 수량도 음수가 되지 않는다. 처음부터 수량이 0인 종류도 있을 수 있다. 그런 종류에 대한 요청이 들어오면 다른 품절 요청과 똑같이 처리한다. 예를 들어 어떤 종류의 과자가 처음에 2개 있고 그 종류를 구매하려는 요청이 세 번 들어왔다면, 앞의 두 요청에서는 각각 한 개를 판매한다. 세 번째 요청에서는 판매하지 않으며, 마지막 수량은 0개다. 처음 진열된 수량과 시간순 요청 목록이 주어질 때, 모든 요청을 처리한 뒤 각 종류의 과자가 몇 개씩 남는지 구하는 프로그램을 작성한다. 결과는 과자의 번호가 작은 순서대로 정리한다.

입력

첫째 줄에 정수 N과 M이 공백으로 구분되어 주어진다.
둘째 줄에 정수 A_1, A_2, …, A_N이 공백으로 구분되어 주어진다.
셋째 줄에 요청한 과자 번호를 나타내는 정수 B_1, B_2, …, B_M이 시간순으로 주어진다.
1 ≤ N ≤ 1,000
1 ≤ M ≤ 1,000
0 ≤ A_i ≤ 1,000 (1 ≤ i ≤ N)
1 ≤ B_j ≤ N (1 ≤ j ≤ M)

출력

모든 요청을 처리한 뒤 남은 과자 수량을 1번 종류부터 N번 종류까지 순서대로, 공백 하나로 구분하여 한 줄에 출력한다. 남은 과자가 없는 종류는 0을 출력한다. 모든 종류가 품절이면 N개의 0을 출력한다.

예제 입력 1

4 7
2 0 3 1
1 2 3 1 1 4 3

예제 출력 1

0 0 1 0

예제 입력 2

1 4
2
1 1 1 1

예제 출력 2

0

예제 입력 3

3 3
0 0 0
3 2 3

예제 출력 3

0 0 0
힌트 펼치기
  • 과자 번호와 배열의 위치를 대응시킨다.
  • 요청한 종류의 수량이 양수일 때만 1을 뺀다.

관련 서재 장

관련 장

출처: Devin.KR 자체 제작

알고리즘 분류배열구현

풀이 작성

연습 채점은 공개 테스트로 실행합니다. 인증 제출은 코드를 봉인한 뒤 새 입력을 실행하고 서버에서 출력을 대조하며 코드와 판정을 저장합니다.

Python 기본 시간 제한 = 문제 시간 제한 × 3 + 2초. 문제별 예외는 아래 표에 반영됩니다. 표준 라이브러리만 지원합니다.

Ctrl+Enter: 연습 채점 · Tab: 들여쓰기 · Esc 후 Tab: 다음 요소로 이동. 언어별 초안은 이 브라우저에 저장됩니다. JavaScript 입력: require('fs').readFileSync(0, 'utf8'), readline 또는 input().

로그인하면 인증 제출을 사용할 수 있습니다.

풀이를 제출하면 여기에서 결과를 확인할 수 있습니다.

    연습 기록은 이 브라우저에 최근 50개를 저장합니다. 인증 기록은 내 제출에서 확인하세요.

    이 브라우저의 연습 기록

      언어별 제한

      테스트 케이스마다 새 전역에서 실행하며 준비 시간은 제외합니다. 시간 초과된 출력은 검사하지 않습니다. 브라우저·기기 성능에 따라 실행 시간이 달라집니다.

      언어엔진(버전)시간 제한메모리
      javascript사용자 브라우저 JavaScript 엔진 (버전은 브라우저에 따라 다름)1000ms / 테스트측정하지 않음(브라우저 채점)
      pythonPyodide 314.0.7 (CPython 3.14 WASM)5000ms / 테스트측정하지 않음(브라우저 채점)