휴가 나가기
면접 대비시간 제한1초메모리 제한1024 MB
각 작업에 선행 작업이 하나씩 있을 때, 중요도 합이 S 이상이 되는 최소 처리 시간을 구합니다.
문제
용범이는 휴가를 나가기 전에 밀린 업무를 처리하려고 한다. 하지만 모든 업무를 처리할 시간이 부족해서, 중요한 업무만 골라 처리하고 떠나려고 한다.
밀린 업무는 총 개이며, 1번부터 번까지 번호가 매겨져 있다. 각 업무에는 선행 업무가 최대 1개 있을 수 있고, 선행 업무는 업무마다 모두 다르다. 용범이는 한 번에 한 업무만 처리할 수 있다. 업무 마다 중요도 와 처리하는 데 걸리는 시간 가 주어진다. 업무들을 처리하는 데 걸리는 시간은 처리한 업무들의 처리 시간의 합이다.
시간이 충분하면 용범이는 모든 업무를 처리할 수 있다. 하지만 휴가까지 남은 시간이 얼마 없다. 처리한 업무들의 중요도 합이 이상이 되도록 하는 데 필요한 최소 시간을 구하시오.
입력
첫 번째 줄에 업무의 수 과 처리한 업무들의 중요도 합의 최소 가 공백으로 구분되어 정수로 주어진다. ,
두 번째 줄에 각 업무의 중요도 이 공백으로 구분되어 정수로 주어진다.
세 번째 줄에 각 업무의 처리 시간 이 공백으로 구분되어 정수로 주어진다.
네 번째 줄에 각 업무의 선행 업무 번호 이 공백으로 구분되어 정수로 주어진다. 선행 업무 번호가 0이면 선행 업무가 없다. 0이 아닌 모든 는 서로 다르다.
충분한 시간이 주어진다면 모든 업무를 처리할 수 있는 경우만 입력으로 주어진다.
출력
처리한 업무들의 중요도 합이 이상이 되는 데 필요한 시간의 최솟값을 출력한다. 모든 업무를 처리해도 중요도 합이 미만이라면 을 출력한다.