스티커 수집

가격과 가치가 있는 N개의 스티커 중 일부를 이미 가지고 있을 때, 팔고 사는 과정을 거쳐 가치 합이 K 이상이 되게 하는 최소 초기 금액을 구한다.

어려움8동적 계획법비트 연산그리디정렬아직 제출이 없습니다시간 제한2초메모리 제한128 MB

문제

영훈이는 서로 다른 N개의 스티커 중 일부를 가지고 있다. 스티커는 0번부터 N-1번까지 번호가 매겨져 있으며, 각 스티커는 하나씩만 존재한다. 각 스티커에는 가격과 가치가 주어진다.

영훈이는 가진 스티커를 팔거나, 가지고 있지 않은 스티커를 살 수 있다. 이 과정을 원하는 만큼 반복한 뒤, 가지고 있는 스티커들의 가치 합이 적어도 K가 되도록 하려 한다.

처음에 필요한 돈의 최솟값을 구하라. 어떤 방법으로도 가치 합을 K 이상으로 만들 수 없다면 -1을 출력한다.

입력

첫째 줄에 스티커의 개수 N이 주어진다. N32 이하의 자연수이다.

둘째 줄에는 각 스티커의 가격이 주어진다.

셋째 줄에는 각 스티커의 가치가 주어진다.

넷째 줄에는 정수 K가 주어진다.

다섯째 줄에는 영훈이가 처음에 가지고 있는 스티커의 개수가 주어진다.

여섯째 줄에는 영훈이가 처음에 가지고 있는 스티커의 번호가 주어진다. 처음에 가지고 있는 스티커의 수가 0이면 여섯째 줄은 주어지지 않는다.

가격은 30,000,000 이하의 자연수이다. 처음에 가지고 있는 스티커의 개수는 0 이상 N 이하의 정수이다. K0 이상 1,000,000,000 이하의 정수이다. 가치는 1 이상 30,000,000 이하의 정수이다.

출력

필요한 초기 금액의 최솟값을 출력한다. 불가능하면 -1을 출력한다.