xs = [[1, 80], [3, 100], [2, 80], [3, 90], [2, 80]]
def select(ls):
    ans = []
    ys = sorted(xs, key=lambda x:(-x[0], -x[1]))
    print(ys)
    R = -1
    for r, a in ys:
        if r == R:
            continue
        ans.append((r, a))
        R = r
    return ans

def max_area(ls, k):
    lst = select(xs)
    dp = [0] * k
    for i in range(len(lst)):
        for j in range(k - 1, 0, -1):
            dp[j] = max(dp[j], dp[j - 1] + lst[i][1])
        dp[0] = max(dp[0], lst[i][1] + lst[i][0]**2)
        print(dp)
    return dp[k - 1]
print(max_area(xs, 3))
        

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: