Traveling Junkman Problem
시간 제한3초메모리 제한1024 MB
N개의 집을 정확히 한 번씩 방문하며 매입할 물건을 선택할 때 얻을 수 있는 최대 이익을 구한다.
문제
고물상이 개의 집을 순회하며 물건을 사고 판다. 각 집에는 번부터 번까지 번호가 붙어 있다. 고물상이 취급하는 물건은 총 종류가 있으며, 마찬가지로 번부터 번까지 번호가 붙어 있다.
번 집은 고물상에게 가지 서로 다른 종류의 물건을 하나씩 판매하고자 한다. 각 물건의 종류는 , , , 번이다. 고물상은 이 중 원하는 물건들만 선택해서 매입할 수 있다.
또한 번 집은 가지 서로 다른 종류의 물건에 관심이 있으며, 각각 , , , 번이다. 번 집은 고물상으로부터 해당하는 종류의 물건들을 몇 개든지 모조리 사들인다. 번 집이 판매하는 물건들과 번 집이 관심을 가지는 물건들의 종류끼리는 서로 겹치지 않는다.
고물상이 번 종류의 물건을 매입할 때의 가격은 하나당 , 팔 때의 가격은 하나당 이다.
고물상은 처음에 아무런 물건도 가지고 있지 않은 상태에서 시작해서, 개의 집을 원하는 순서로 방문할 수 있다. 단, 각 집은 정확히 한 번씩만 방문해야 한다. 고물상은 순회를 마쳤을 때 수익이 최대가 되는 순서로 집을 방문하려고 한다. 순회를 마치고 남은 물건은 수익에 포함하지 않는다. 얻을 수 있는 최대 수익은 얼마일까?
입력
첫 번째 줄에 , 이 공백으로 구분되어 주어진다.
두 번째 줄에 고물상이 물건을 매입할 때 드는 비용 이 공백으로 구분되어 주어진다.
세 번째 줄에 고물상이 물건을 판매할 때 버는 수익 이 공백으로 구분되어 주어진다.
다음 개 줄에 각 집에 대한 정보가 순서대로 주어진다. 번 집에 대한 정보는 다음과 같이 두 줄로 이루어진다.
- 첫 번째 줄에 와 개의 정수 가 공백으로 구분되어 주어진다. 번 집이 판매하는 물건의 종류를 나타낸다.
- 두 번째 줄에 와 개의 정수 가 공백으로 구분되어 주어진다. 번 집이 관심을 가지는 물건의 종류를 나타낸다.
는 이상의 정수이며, 을 만족한다.
각 에 대해서 는 이상 이하의 서로 다른 정수이다.
출력
최적의 순서로 개의 집을 방문했을 때 얻을 수 있는 최대 수익을 출력한다.