#1491. 香肠银行

香肠银行

题目描述

SauSaGe 城的每个人都在谈论这里著名的一家银行,它提供了一个看似不可能的交易: “把你的钱存在我们这儿,我们每天都会让它翻倍!”

Hamed 决定试一试,于是他在账户中存入了 11 美元。

假设在某一天开始时,他的银行余额是 xx 美元。每一天都会按顺序发生以下事件:

  1. 在早晨,银行奇迹般地将他的余额翻倍,变成 2x2x 美元。
  2. 在晚上,Hamed 可以选择将银行账户里的所有钱全部取出。如果他这么做,取出的金额会加到他的银行卡上,并且他的银行账户会立即重置为 11 美元,以便第二天重新开始翻倍过程。如果他不取款,钱就留在银行里继续翻倍。

不幸的是,这家不可思议的银行只会在接下来的 nn 天内营业,之后将永久关闭。

Hamed 希望在银行关闭前,恰好在 kk 个不同的日子里进行取款。请计算在第 nn 天结束后,Hamed 银行卡上的金额最大能达到多少。

输入格式

第一行包含一个整数 tt(1≤t≤5001 \le t \le 500)—— 测试用例的数量。

对于每个测试用例,仅包含一行,有两个整数 nn 和 kk(1≤k≤n≤301 \le k \le n \le 30)—— 分别表示银行营业的天数和 Hamed 取款的天数。

输出格式

对于每个测试用例,输出一行一个整数,表示在第 nn 天结束后 Hamed 银行卡上能够达到的最大金额。

样例输入 1

5
1 1
2 1
4 3
5 5
10 2

样例输出 1

2
4
8
10
514

说明

样例解释

  • 在第一个测试用例中,他的银行余额在第一天变成了 22,然后他选择了取款,获得 22 美元。
  • 在第二个测试用例中,他可以选择在第 22 天取款。此时余额翻倍了两次(1→2→41 \to 2 \to 4),他获得 44 美元。
  • 在第三个测试用例中,他可以选择在第 11、第 33 和第 44 天取款。
    • 第 11 天:余额 1→21 \to 2,取出 22 美元,余额重置为 11。
    • 第 22 天:余额 1→21 \to 2,不取款。
    • 第 33 天:余额 2→42 \to 4,取出 44 美元,余额重置为 11。
    • 第 44 天:余额 1→21 \to 2,取出 22 美元。 他分别获得了 2,4,22, 4, 2 美元,总计 88 美元。

数据范围

  • 对于所有测试点,保证 1≤t≤5001 \le t \le 500。
  • 对于每个测试用例,保证 1≤k≤n≤301 \le k \le n \le 30。
  • 保证所有的输入数值均为整数。