Haroid and dan

Added: 2025-09-13 05:13:15

Question Image

Haroid and dan

Answer

✏️ Edit
def max_money(n, amounts, deadlines):
    jobs = list(zip(amounts, deadlines))
    jobs.sort(key=lambda x: x[0], reverse=True)
    
    max_deadline = max(deadlines)
    schedule = [False] * (max_deadline + 1)
    total_money = 0
    
    for amount, deadline in jobs:
        for time in range(min(deadline, max_deadline), 0, -1):
            if not schedule[time]:
                schedule[time] = True
                total_money += amount
                break
    
    return total_money

n = int(input())
amounts = list(map(int, input().split()))
deadlines = list(map(int, input().split()))

print(max_money(n, amounts, deadlines))