arrow_forward
همه ارسالها
جزئیات ارسال کد#45
برای پسندیدن وارد شوید
1def mirror_ins(itr, ins, index_based: bool = True):
2 leng = len(itr)
3 if leng % 2:
4 # The length of iterable is odd
5 middle = leng // 2
6 if ins == middle:
7 return middle if index_based else itr[middle]
8 else:
9 distance = abs(ins - middle)
10 if ins > middle:
11 mirror = ins - (distance * 2)
12 return mirror if index_based else itr[mirror]
13 else:
14 mirror = ins + distance * 2
15 return mirror if index_based else itr[mirror]
16 else:
17 # The length of iterable is even
18 middles = ((leng // 2) - 1, leng // 2)
19 if ins in middles:
20 if ins == middles[0]:
21 return middles[1] if index_based else itr[middles[1]]
22 else:
23 return middles[0] if index_based else itr[middles[0]]
24
25 else:
26 distance = abs(ins - middles[1])
27 if ins > middles[1]:
28 mirror = ins - (distance * 2 - 1)
29 return mirror if index_based else itr[mirror]
30 else:
31 mirror = ins + (distance * 2 - 1)
32 return mirror if index_based else itr[mirror]
33
34
35def ask_input():
36 n = int(input())
37 pillars = list(map(int, input().split()))
38 return pillars
39
40
41if __name__ == "__main__":
42 pillars = ask_input()
43 min_shot = 0
44 for i in range(len(pillars) // 2):
45 mirror = mirror_ins(pillars, i, False)
46 if pillars[i] == mirror:
47 continue
48 min_shot += abs(pillars[i] - mirror)
49 else:
50 del i, mirror
51 print(min_shot)
کد ارسالشده برای داوری خودکار هاتکدز
UTF-8