Можно ли как то оптимизировать мой код?
Хината и Кенма играют в компьютерную игру. Для победы одному из них необходимо одолеть всех магических существ другого.
Игру можно представить себе так:
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')