클래시 로얄 (Large)
시간 제한20초메모리 제한512 MB
N장 중 8장을 골라 M개의 코인으로 업그레이드해 덱의 총 공격력을 최대로 만든다.
문제
클래시 로얄은 실시간 전략 카드 게임이다. 각 카드에는 공격력과 레벨이 있다. 플레이어는 카드 8장을 골라 배틀 덱을 만들며, 덱의 총 공격력은 덱에 든 카드 공격력의 합이다. 플레이어는 배틀 덱의 카드를 전장에 내려놓으며 서로 싸운다. 전투에서 이기면 코인을 받고, 코인으로 카드를 업그레이드할 수 있다. 카드를 업그레이드하면 공격력이 올라간다.
며칠 동안 전장에서 싸운 끝에 꼬마 숀은 코인을 총 개 모았고, 이 코인으로 카드 몇 장을 업그레이드하기로 했다. 숀에게는 카드가 장 있다. 번째 카드의 레벨은 1부터 까지 될 수 있고, 레벨 일 때의 공격력은 이다. 카드는 한 번에 한 레벨씩만 업그레이드할 수 있으며, 번째 카드를 레벨 에서 레벨 로 올리려면 코인 개가 든다. 업그레이드를 하기 전 번째 카드의 레벨은 이다.
숀은 코인의 일부 또는 전부를 써서 카드를 업그레이드한 다음, 정확히 8장으로 덱을 만들어 덱의 총 공격력을 최대로 하려고 한다. 코인이 충분하다면 같은 카드를 여러 번 업그레이드할 수 있고, 모든 카드를 업그레이드할 필요는 없다. 숀이 만들 수 있는 덱의 총 공격력의 최댓값을 구하시오.
입력
첫째 줄에 테스트 케이스의 수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫째 줄에는 숀이 가진 코인의 수 과 카드의 수 이 주어진다. 그다음 개의 블록이 이어지며, 번째 블록은 번째 카드를 나타내는 세 줄로 이루어진다.
- 첫째 줄에는 카드의 최대 레벨 와 현재 레벨 가 주어진다.
- 둘째 줄에는 레벨별 공격력 가 주어진다.
- 셋째 줄에는 정수 개 이 주어진다. 는 현재 레벨이 인 카드를 한 레벨 올리는 데 필요한 코인의 수이다. 이면 이 줄은 비어 있다.
출력
각 테스트 케이스마다 Case #x: y 형식으로 한 줄을 출력한다. x는 1부터 시작하는 테스트 케이스 번호이고, y는 숀이 가진 코인으로 만들 수 있는 덱의 총 공격력의 최댓값이다.
제한
힌트
첫 번째 예제에서는 앞의 카드 4장을 레벨 3으로, 5번째와 6번째 카드를 레벨 2로 업그레이드하고 마지막 카드 2장은 레벨 1로 둔다. 이때 드는 코인은 개이고, 덱의 총 공격력은 이다. 이 값이 만들 수 있는 최댓값이다.