#P16520. [Bapc2008]Blackjack

[Bapc2008]Blackjack

题目描述

你与庄家进行一种简化的二十一点游戏。牌的花色不影响游戏,只考虑牌面:

  • 29 的点数等于牌面数字;
  • TJQK 的点数均为 1010
  • 每张 A 可以按 11 点或 1111 点计算。

一手牌的低点数定义为把所有 A 都按 11 点计算时的总和。

一手牌的高点数定义为在总和不超过 2121 的前提下,通过把部分 A1111 点计算能够得到的最大总和。

游戏不包含分牌、加倍、保险或“天然二十一点”等额外规则。

牌堆中剩余牌的完整顺序是已知的。每局开始时,你可以下注任意整数金额 xx,满足

pxq.p\le x\le q.

一局游戏按以下规则进行:

  1. 你拿第一张牌;
  2. 庄家拿第一张牌;
  3. 你拿第二张牌;
  4. 庄家拿第二张牌;
  5. 只要你的低点数不超过 2121,你可以反复选择:
    • Hit:再拿一张牌;
    • Stand:停止拿牌。
  6. 若你的低点数超过 2121,你立即爆牌并损失下注金额。
  7. 若你选择停牌,庄家开始行动。只要庄家的高点数小于 1717,庄家就继续拿牌。
  8. 庄家行动结束后:
    • 若庄家的低点数超过 2121,你获胜,净利润为 +x+x
    • 否则比较双方高点数:你的点数较大时净利润为 +x+x,相等时为 00,较小时为 x-x
  9. 本局使用过的所有牌进入弃牌堆,不会回到牌堆。

若在任何时刻需要继续发牌,但牌堆已经为空,则当前这一局作废,下注金额原样退回,净利润为 00

牌堆中的牌按给定顺序依次发出。你知道全部未来牌序,并可以在每次决策时采取最优策略。牌局结束后继续使用剩余牌进行后续牌局。请计算能够获得的最大总利润。

输入格式

第一行包含一个整数 TT,表示测试用例数量。

对于每个测试用例:

  1. 第一行包含三个整数 c,p,qc,p,q
    • 0c100000\le c\le 10000,表示牌堆中剩余牌数;
    • 0pq1000\le p\le q\le 100,表示每局允许的最小与最大下注金额。
  2. 接下来 c/60\lceil c/60\rceil 行共包含恰好 cc 个字符,表示牌堆顺序。合法字符为 2-9TJQKA

第一行中的第一个牌面字符表示最先发出的牌。除最后一行外,每行包含 6060 个字符。

输出格式

对于每个测试用例,输出一行一个整数,表示采用最优策略能够获得的最大总利润。

样例输入

1
4 1 15
TTA8

样例输出

15