# -*- coding: utf-8 -*-
"""
Created on Tue Jul 2 17:46:55 2019
@author: zangz
"""
def weight(h,cnt):
'''
题目:一球从H米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第cnt次落地时,共经过多少米?第10次反弹多高?
:param h:原始高度
:param cnt:着地次数
:return:sum 第cnt 着地经过的米
思路:1、第n次反弹高度用循环所得
2、第n次落地经过总路程
'''
hei = [] #存储的是第一次反弹后的高度
sum = h #第一次着地走过的路程就是初始落下来然后接触到地面
for i in range(1,cnt): #循环计算的是触地的次数,第1次就是索引0已经在上面做了
h = h/2
hei.append(h) #反弹到落地算是一次接触地面
if h ==0:
break
#计算cnt 着地经过路程
if cnt == 1 :
sum =h
else:
for j in range(len(hei)): #将存储的高度进行遍历
sum = sum + hei[j]*2 #每次都要加上的是弹起加落下的路程的两倍
# print(sum)
print('%.2f' % sum) #格式化输出
if __name__=="__main__":
m=int(input()) #求几组样例
list1=[] #存储样例数据
for i in range(m):
H,n=str(input()).split(" ")
list1.append(int(H))
list1.append(int(n))
for i in range(0,2*m,2):
weight(list1[i],list1[i+1])