자습 째기

시간 제한2초메모리 제한1024 MB

요약
앞에서부터 x개의 자습만 참석하고 나머지를 째기로 할 때, t의 원소를 최대 A개 고쳐 결석이 B번 이하가 되도록 하는 t'을 출력한다.
난이도

보통10점 중 7점

유형
그리디, 구현, 정렬, 배열
정답자
아직 제출이 없습니다

문제

앞으로 남은 자습은 총 NN번이고, 총 MM분의 선생님들께서 감독을 담당하실 수 있다. 당신은 어떤 정수 x$$(0\leq x\leq N)를 선택해서, 앞에서부터 xx개의 자습은 참석하고, 이후의 모든 자습을 째려고 한다.

ii번째 자습에는 t_it\_i번 선생님께서 감독을 담당하신다. 그런데 사실 선생님들께서도 자습 감독 도는 것을 귀찮아하셔서, jj번 선생님께서는 앞으로 자신이 감독을 맡은 자습들 중에서 앞에서부터 c_jc\_j개의 자습에만 감독을 도시고, 이후의 자습에는 감독을 돌지 않으신다. 예를 들어, 11번 선생님께서 22, 44, 55번째 자습을 담당하시고 c_1=2c\_1=2라면 22, 44번째 자습만 감독을 도시고 55번째 자습은 감독을 돌지 않으신다. 어떤 날의 자습을 쨌을 때, 그날의 담당 선생님께서 감독을 도신다면 결석 처리가 되고, 돌지 않으신다면 결석 처리가 되지 않는다.

당신은 학교 전산을 해킹해 수열 tt의 원소를 최대 AA개까지 임의로 수정해둘 수 있다. BB번 이하로 결석 처리가 되면서 최대한 많은 수의 자습을 째기 위해 tt를 어떻게 고쳐야 할까? 자습을 하나도 째지 못하는 경우도 있을 수 있다.

입력

첫 번째 줄에 네 개의 정수 NN, MM, AA, BB가 공백으로 구분되어 주어진다.

두 번째 줄에 NN개의 정수 t_1,t_2,⋯ ,t_Nt\_1, t\_2, \cdots, t\_N이 공백으로 구분되어 주어진다.

세 번째 줄에 MM개의 정수 c_1,c_2,⋯ ,c_Mc\_1, c\_2, \cdots, c\_M이 공백으로 구분되어 주어진다.

출력

고친 후의 tt를 나타내는 NN개의 정수 t′_1,t′_2,⋯ ,t′_Nt'\_1, t'\_2, \cdots, t'\_N을 공백으로 구분하여 출력한다. 항상 1≤t′_i≤M1 \leq t'\_i \leq M이어야 하고, t_i=t′_it\_i=t'\_i인 ii가 N−AN-A개 이상 존재해야 한다.

정답이 여러 개 존재한다면 그중 아무거나 출력해도 상관없다.

제한

  • 1≤M≤N≤10001 \leq M \leq N \leq 1000
  • 1≤A≤N1 \leq A \leq N
  • 0≤B≤N0 \leq B \leq N
  • 1≤t_i≤M1 \leq t\_i \leq M
  • 0≤c_i≤N0 \leq c\_i \leq N

예제1

  1. 예제 1

    입력
    5 3 2 0
    1 2 3 1 2
    1 2 3
    
    예상 출력
    1 2 1 1 1