프로그램 명: shopping
제한시간: 1 초
쇼핑할 물품의 리스트를 적어서 할인점으로 물건을 사러 가려고 한다.
아래 처리 조건에 따라 쇼핑을 하는 경우 가격의 최소 값을 구하는 프로그램을 작성하시오.
- 물건을 빠뜨리지 않기 위해 반드시 리스트에 적힌 순서대로 사야 한다.
- 한 번 지나간 길을 다시 돌아오지 못한다.
예를 들어 살 물건의 리스트가 (2, 1)이고,
진열된 물품 번호와 가격이 아래 그림 과 같은 경우
아래와 같이 3가지의 쇼핑 방법이 있으며,
이 경우 가장 최소로 살수 있는 가격은 3(1+2) 이다.
입력 형식
- 입력의 첫 줄은 구입할 물건 수(m)와 진열된 물건 수(n)가 입력된다.
- 둘째 줄은 구입할 물품의 번호가 m개 입력된다.이 번호가 중복되는 경우는 없다.
- 셋째 줄은 진열된 물품 번호가 n개 입력된다.
- 넷째 줄은 진열된 물품의 판매 가격이 n개 입력된다.
물품 번호는 100을 넘지 않은 양의 정수이고, m은 100 이하인 양의 정수이며, n은 1000 이하인 양의 정수이다.
출력 형식
최소로 살 수 있는 가격을 출력한다.
살 수 없는 경우는 ‘impossible’을 출력한다.
입력과 출력의 예
입력
2 5
2 1
2 1 2 3 1
3 5 1 4 2
출력
3
출처: South America 2002
[질/답]
[제출 현황]
[푼 후(0)]