Pseudominion (작은 입력)

시간 제한5초메모리 제한512 MB

요약
손에 있는 카드와 덱에서 뽑는 카드를 어떤 순서로 낼지 정해 턴이 끝나기 전에 가장 큰 점수를 구합니다.
난이도

보통10점 중 6점

유형
그리디, 정렬, 시뮬레이션
정답자
아직 제출이 없습니다

문제

카드 게임을 한다. 카드마다 보너스 수가 세 개 적혀 있다. 카드 보너스 cc, 점수 보너스 ss, 턴 보너스 tt다. 처음에 몇 장은 손에 있고 나머지는 탁자 위의 덱에 쌓여 있다. 시작할 때 남은 턴 수는 1이고 점수는 0이다.

한 턴에 손에 있는 카드 중 하나를 골라 낼 수 있다. 낸 카드의 보너스 수가 cc, ss, tt라면 다음이 순서대로 일어난다.

  • 그 카드는 손에서 버려지고 다시 쓸 수 없다.
  • 덱의 맨 위에서 cc장을 손으로 가져온다. 덱에 남은 카드가 cc장보다 적으면 남은 카드를 전부 가져온다.
  • 점수가 ss만큼 늘어난다.
  • 남은 턴 수가 tt만큼 늘어난다.

카드를 한 장 내면 남은 턴 수는 먼저 1 줄어들고, 그다음 tt만큼 늘어난다. 턴을 시작할 때 손에 카드가 없으면 그 턴에는 아무 일도 일어나지 않는다. 남은 턴 수가 0이 되면 더 이상 카드를 낼 수 없다. 턴이 다 떨어지기 전에 얻을 수 있는 점수의 최댓값을 구한다.

다음 설명은 규칙이 어떻게 맞물리는지 보여주려고 붙인 것이며, 아래 제한보다 큰 cc 값을 포함한다.

손에 든 카드ccsstt
1번002
2번050
3번211
덱의 카드 (가져오는 순서)ccsstt
4번110
5번011
6번220

아래 표는 이 카드로 8점을 얻는 과정이다. 앞의 세 열은 카드를 내기 직전의 손, 남은 턴 수, 점수이고 마지막 열은 그 턴에 내는 카드다.

손남은 턴점수내는 카드
1, 2, 3101번
2, 3203번
2, 4, 5212번
4, 5165번
4174번
608없음

카드 보너스와 턴 보너스가 있어서, 멈춰야 할 때까지 카드를 길게 이어 낼 수 있다.

입력

첫 줄에 테스트 케이스의 수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다.

각 테스트 케이스의 첫 줄에는 손에 든 카드의 수 NN이 주어진다. 다음 NN개의 줄에는 손에 든 카드 한 장의 보너스 수 cc, ss, tt가 정수 세 개로 주어진다.

그다음 줄에는 덱에 있는 카드의 수 MM이 주어진다. 다음 MM개의 줄에는 덱에 있는 카드 한 장의 보너스 수 cc, ss, tt가 정수 세 개로 주어진다. 덱의 카드는 가져오는 순서대로 나열되어 있다.

제한

  • 1≤T≤1001 \le T \le 100
  • 1≤N1 \le N
  • 0≤M0 \le M
  • N+M≤80N + M \le 80
  • 0≤c≤10 \le c \le 1
  • 0≤s≤200 \le s \le 20
  • 0≤t≤200 \le t \le 20

출력

각 테스트 케이스마다 한 줄에 Case #x: S를 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, SS는 턴이 다 떨어지기 전에 얻을 수 있는 최대 점수다.

예제2

  1. 예제 1

    입력
    2
    4
    1 0 0
    1 1 1
    0 5 0
    1 2 0
    0
    2
    1 1 1
    0 6 0
    1
    0 1 3
    
    예상 출력
    Case #1: 6
    Case #2: 8
    
  2. 예제 2

    입력
    1
    1
    0 0 0
    0
    
    예상 출력
    Case #1: 0