arrow_forward همه ارسال‌ها

جزئیات ارسال کد#45

code_blocks
مسئله مربوطه: رستگاری آرتور (#1) arrow_outward
verified
وضعیت داوری نهایی: خطای اجرا تست 3 مشاهده لاگ خطا
terminal
زبان برنامه‌نویسی: Python
schedule
ارسال‌کننده و زمان:
Mujtablue io (۳ سال پیش)
descriptionsolution.py ۵۱ خط • ۱٫۶ کیلوبایت
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