import sys
import bisect
from collections import deque
from heapq import heappop, heappush
def solve(h, n, a, c):
v = list(zip(a, c))
v.sort()
lo, hi = 1, 1000000000000000000
mx = hi
while lo <= hi:
d = (lo + hi) // 2
health = 0
for attack, cost in v:
cnt = 1 + (d - 1) // cost
health += cnt * attack
if health >= h:
break
if health >= h:
mx = min(mx, d)
hi = d - 1
else:
lo = d + 1
return mx
def main():
input = sys.stdin.read
data = input().split()
index = 0
t = int(data[index])
index += 1
results = []
for _ in range(t):
h = int(data[index])
n = int(data[index + 1])
index += 2
a = list(map(int, data[index:index + n]))
index += n
c = list(map(int, data[index:index + n]))
index += n
result = solve(h, n, a, c)
results.append(result)
for result in results:
print(result)
if __name__ == "__main__":
main()
507B - Amr and Pins | 379A - New Year Candles |
1154A - Restoring Three Numbers | 750A - New Year and Hurry |
705A - Hulk | 492B - Vanya and Lanterns |
1374C - Move Brackets | 1476A - K-divisible Sum |
1333A - Little Artem | 432D - Prefixes and Suffixes |
486A - Calculating Function | 1373B - 01 Game |
1187A - Stickers and Toys | 313B - Ilya and Queries |
579A - Raising Bacteria | 723A - The New Year Meeting Friends |
302A - Eugeny and Array | 1638B - Odd Swap Sort |
1370C - Number Game | 1206B - Make Product Equal One |
131A - cAPS lOCK | 1635A - Min Or Sum |
474A - Keyboard | 1343A - Candies |
1343C - Alternating Subsequence | 1325A - EhAb AnD gCd |
746A - Compote | 318A - Even Odds |
550B - Preparing Olympiad | 939B - Hamster Farm |