def beibao(spots, days):
dp = [[0 for _ in range(days + 1)] for _ in range(len(spots) + 1)]
for i in range(1, len(spots) + 1):
for j in range(1, days + 1):
spot_time, spot_score = spots[i - 1]
if spot_time <= j:
dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - spot_time] + spot_score)
else:
dp[i][j] = dp[i - 1][j]
result = []
j = days
for i in range(len(spots), 0, -1):
if dp[i][j] != dp[i - 1][j]:
result.append(spots[i - 1])
j -= spots[i - 1][0]
return [spot for _, spot in reversed(result)]
spots = [(1, 7), (2, 8), (3, 9), (1, 6)]
days = 4
print(beibao(spots, days))