Làm sao để có câu trả lời hay nhất?
12/01/2025
19/03/2025
ken leenày không phải tin học lớp 1 mà là tin học lớp 6
12/01/2025
def can_reach_end(n, K, D, F):
"""
Kiểm tra xem có thể đến được trạm cuối cùng hay không.
Args:
n: Số lượng trạm xăng.
K: Lượng xăng ban đầu.
D: Danh sách khoảng cách từ trạm trước đến trạm i.
F: Danh sách lượng xăng tại mỗi trạm.
Returns:
Số thứ tự trạm cuối cùng có thể đạt được hoặc -1 nếu không thể đến được trạm cuối.
"""
dp = [False] * (n + 1) # dp[i]: Có thể đến được trạm i không?
dp[0] = True # Ban đầu đã ở trạm 0
for i in range(1, n + 1):
for j in range(i):
if dp[j] and K >= D[i] - D[j]:
dp[i] = True
K += F[i] - (D[i] - D[j])
break
if dp[n]:
return n
else:
for i in range(n, 0, -1):
if dp[i]:
return i
return -1
# Nhập dữ liệu
n, K = map(int, input().split())
D = list(map(int, input().split()))
F = list(map(int, input().split()))
# Giải quyết và in kết quả
result = can_reach_end(n, K, D, F)
if result == n:
print("YES")
else:
print(result)
Nếu bạn muốn hỏi bài tập
Các câu hỏi của bạn luôn được giải đáp dưới 10 phút
CÂU HỎI LIÊN QUAN
21/04/2025
21/04/2025
21/04/2025
Top thành viên trả lời