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