랜덤 넘버 추측하기
면접 대비시간 제한1초메모리 제한1024 MB
멤버들의 가중치와 당첨자 순서가 주어질 때, 각 추첨에서 해당 멤버가 당첨되는 티켓 번호를 하나씩 출력합니다.
문제
영과일에서 한 학기 동안 문제를 열심히 푼 회원들을 추첨해 상품을 지급하려고 한다.
각 회원에게는 푼 문제 수만큼 추첨 확률을 높이는 가중치가 부여된다. 회원이 문제를 개 풀었다면 그 회원의 가중치는 이다.
한 학기 동안 문제를 푼 회원은 총 명이며, 이들에게 1번부터 번까지 고유 번호를 부여한다.
명 가운데 명을 뽑으며, 추첨은 부터 시작해 다음 순서로 진행한다.
- 1번 회원부터 번 회원까지 번호 순서대로, 각 회원의 가중치만큼 응모권을 리스트 에 넣는다. 예를 들어 회원이 3명이고 가중치가 이라면 이다. (는 번 회원의 응모권)
- 부터 까지의 정수 중 하나를 무작위로 골라 라 한다.
- 리스트 의 앞에서부터 번째 응모권을 골라 당첨자 한 명을 뽑는다.
- 리스트 에서 방금 당첨된 회원의 응모권을 모두 지운다.
- 이면 를 1 늘리고 2번으로 돌아간다. 그렇지 않으면 추첨을 끝낸다.
위 방식으로 뽑힌 당첨자의 고유 번호가 순서대로 주어졌을 때, 추첨에서 나온 무작위 수가 차례대로 무엇이었는지 추측한다.
입력
첫 번째 줄에 회원 수 과 당첨 인원 수 이 공백으로 구분되어 주어진다.
두 번째 줄에 각 회원의 가중치 가 공백으로 구분되어 개 주어진다.
세 번째 줄에 뽑힌 순서대로 당첨자의 고유 번호 가 공백으로 구분되어 개 주어진다.
입력의 모든 수는 정수이다.
출력
추첨 과정에서 나온 무작위 수열 를 공백으로 구분하여 출력한다.
가능한 수열이 여러 개라면 그중 아무 수열이나 하나 출력한다.