Код на Python:
n = int(input())
score = 0
jumps = input().split()
sorted_jumps = sorted(jumps)
for i in range(len(jumps)):
if i != len(jumps) - 1:
Ni = jumps.index(sorted_jumps[i]) + 1
Hi = sorted_jumps[i]
if jumps.count(jumps[i]) > 1:
jumps[i] = 'done'
Nj = jumps.index(sorted_jumps[i + 1]) + 1
Hj = sorted_jumps[i + 1]
a = 'abs({} - {}) + {} - {}'.format(int(Ni), int(Nj), int(Hj), int(Hi))
score += eval(a)
print(score)
S1=31
S2=32
Объяснение:
Чтобы выиграть первым ходом, в куче должно быть от 16 до 30 камней включительно. Соответственно, чтобы выиграть вторым ходом, необходимо чтобы камней было в два раза больше (если первым ходом игрок уменьшает число камней в два раза), то есть от 31 до 60 камней.
Но первым ходом игрок не обязательно уменьшает число камней в два раза. Он может просто взять один камень. В этом случае, в куче должно быть 31 или 32 камня.
С учетом того, что согласно условию задачи, выигрыш должен наступить независимо от того, каким будет первый ход, искомые значения 31 и 32.
Держи. На питоне
Объяснение:
n = int(input())
cool_score = 0
jumps = input().split()
sorted_jumps = sorted(jumps)
for i in range(len(jumps)):
if i != len(jumps) - 1:
Ni = jumps.index(sorted_jumps[i]) + 1
Hi = sorted_jumps[i]
if jumps.count(jumps[i]) > 1:
jumps[i] = 'done'
Nj = jumps.index(sorted_jumps[i + 1]) + 1
Hj = sorted_jumps[i + 1]
a = 'abs({} - {}) + {} - {}'.format(int(Ni), int(Nj), int(Hj), int(Hi))
cool_score += eval(a)
print(cool_score)