
fightWithDragons2
Bạn đang chiến đấu với con rồng huyền thoại để bảo vệ thế giới. Con rồng có rất nhiều đầu và muốn tiêu diệt con rồng bạn phải chém hết tất cả các đầu của nó. Lúc đầu Con rồng có x
đầu và bạn có n
loại đòn đánh. Nếu bạn sử dụng đòn đánh thứ i
, con rồng sẽ mất d
i
cái đầu, nhưng sau đó nếu con rồng chưa bị tiêu diệt nó lại mọc thêm hi
cái đầu khác.Bạn có thể sử dụng mỗi đòn đánh bất kỳ số lần, theo bất kỳ thứ tự nào.
Tính số lượt đánh tối thiểu để tiêu diệt con rồng. Nếu không thể tiêu diệt con rồng hãy trả về -1
.
Ví dụ:
- Với
x = 10
,d =[6, 8, 1]
,h = [3, 2, 4]
thìfightWithDragons(x, d, h) = 2
Bạn có thể dùng đòn đánh đầu tiên để chặt 3 đầu của con rồng, sau đó dùng đòn đánh thứ 2.
- Với
x = 15, d =[10 ,11 ],h = [14, 100]
thìfightWithDragons(x,d,h) = -1
Bạn không thể đánh bại con rồng.
Đầu vào/Đầu ra:
- [Thời gian chạy] 0.5 giây với C++, 3 giây với Java và C#, 4 giây với Python, Go và JavaScript
- [Đầu vào] long x
1 <= x <= 10^9
- [Đầu vào] array.long d
1<= d.size() <=100
1<= di <= 10^9
- [Đầu vào] array.long h
1<= h.size() <=100
1<= hi <= 10^9
- [Đầu ra] interger
Số lượt đánh tối thiểu để tiêu diệt con rồng. Nếu không thể tiêu diệt con rồng hãy trả về-1
.
Post Comment