Можно ли как то оптимизировать мой код?

Хината и Кенма играют в компьютерную игру. Для победы одному из них необходимо одолеть всех магических существ другого.

Игру можно представить себе так:

  • n - существ выстроены в ряд, i
  • е существо обладает силой a i

Изначально все существа нейтральны, то есть не принадлежат ни Хинате, ни Кенме.

Хината может выбрать ровно k существ и уничтожить их тайным заклинанием. После этого из оставшихся n − k существ первая половина (стоящие в начале ряда существа) переходит на сторону Хинаты, а вторая — на сторону Кенмы, после чего начинается бой.

Хината очень хочет победить. Для этого ему необходимо максимизировать разность суммарной силы своих существ и существ Кенме, то есть величину

D = ( a i 1 + a i 2 + … + a i ( n − k ) ∕ 2 ) − ( a i ( n − k ) ∕ 2 + 1 + … + a i n − k ) ,

где i 1 , … , i n − k — позиции существ, оставшихся после использования Хинатой своей способности. Хината и Кенма собираются сыграть t игр.

Помогите Хинате — для каждой игры найдите максимальное D , которого он может добиться.

Это мой код:

t = int(input())
d = []

for _ in range(t):
    n, k = map(int, input().split())
    s = [int(a) for a in input().split()]
    ai2 = s[len(s) // 2:]
    ai1 = s[:len(s) // 2]
    k2=k-k//2

    for _ in range(k // 2):
        fuf1 = min(ai1)
        ai1.remove(fuf1)

    for _ in range(k2):
        fuf2 = max(ai2)
        ai2.remove(fuf2)

    D = sum(ai1) - sum(ai2)
    d.append(D)

print(*d, sep='\n')

Ответы (0 шт):