python求助
查看原帖
python求助
838720
asdfjkd楼主2024/4/1 19:47
import math
class Node:
    def __init__(self, val, num):
        self.val = val
        self.num = num

def fun(a):
    return a.val

n = int(input())
a = [None for i in range(n)]
ans = 0
for i in range(n):
    val = int(input())
    a[i] = Node(val, i+1)
a.sort(key=fun)

for i in range(n):
    val = a[i].val
    num = a[i].num
    if a[i].num == 1:
        ans += val
    else:
        n1, n2 = -(10**6), 10 ** 6
        for j in range(i - 1, -1, -1):
            if a[j].num < num:
                n1 = a[j].val
                break
        for j in range(i + 1, n):
            if a[j].num < num:
                n2 = a[j].val
                break
        ans += int(min(val-n1, n2-val))
print(ans)
2024/4/1 19:47
加载中...