도미니언
시간 제한3초메모리 제한1024 MB
덱과 한 번 구매할 수 있는 카드 목록이 주어질 때, 마지막 턴의 카드 뽑기 연쇄에서 얻을 수 있는 최대 승점을 구한다.
문제
《도미니언》의 확장판 《Dominion: Last Turn》은 매 턴마다 카드를 구매하여 덱을 구성하고 최후의 턴에 승점을 계산하는 게임입니다.
《도미니언》은 두 종류의 카드를 사용합니다. 하나는 행동 카드이며, 다른 하나는 승점 카드입니다. 행동 카드는 정수 와 가 새겨져 있으며, 번의 행동 횟수를 추가해 주고, 개의 카드를 뽑게 해 줍니다. 승점 카드에는 정수 가 새겨져 있으며, 승점을 뜻합니다.
이러한 카드들을 한 턴에 하나씩 구매하여 덱을 만들고, 마지막 턴에는 아래와 같은 과정으로 승점을 계산합니다
- 플레이어는 덱을 자신이 원하는 순서대로 정렬합니다.
- 플레이어는 덱에서 카드를 장 뽑고 번의 행동 기회를 가지는 것으로 시작합니다.
- 플레이어는 행동 횟수가 이상일 때 행동 기회를 소모하여 행동 카드를 사용할 수 있습니다. 이 경우 플레이어는 번의 행동을 추가로 할 수 있으며, 장의 카드를 덱에서 뽑습니다. 단, 덱에 남아있는 카드가 장보다 적을 경우 모두 뽑습니다.
- 더 이상 행동을 할 수 없거나 플레이어가 종료를 선언하면 손에 들고 있는 승점 카드에 새겨진 승점의 값의 합계가 최종 승점이 됩니다.
유토는 이제 마지막으로 한 번의 구매 후 승점을 계산해야 합니다. 현재 유토의 덱과 구매할 수 있는 카드의 목록이 주어졌을 때 유토가 한 장을 덱에 추가한 후 얻을 수 있는 최대 승점을 알려주세요.
입력
입력의 첫째 줄에는 현재 덱에 있는 카드의 수 과 덱에 추가할 수 있는 카드의 종류 개수인 이 공백으로 구분되어 주어집니다.
이후 개의 줄에 걸쳐 덱에 있는 카드의 정보가 주어집니다.
이후 개의 줄에 걸쳐 구매할 수 있는 카드의 정보가 주어집니다.
카드에 대한 정보는 카드가 행동 카드라면 Act 의 형태로 주어지며, 승점 카드라면 Point 의 형태로 주어집니다.
출력
유토가 얻을 수 있는 최대 승점을 출력해주세요.