Форум » Обработка целых чисел » Задание 17 №7232 Неправильный ответ » Ответить

Задание 17 №7232 Неправильный ответ

mayushka0607: В этом задании ответ 4735 и 9211, а у меня получилось разными способами 4758 -2104. Причем задачи 7232 и 7233 аналогичны, но в 7233 ответы сходятся. Вот программа: s=open('17-390.txt').readlines() s=[int(x) for x in s] def f5(n1,n2,n3): s5=[x for x in [n1,n2,n3] if len(str(x))==5] if 0<len(s5)<3: return True def f5f11(n1,n2,n3): s5=[x for x in [n1,n2,n3] if abs(x)%5==0] s11=[x for x in [n1,n2,n3] if abs(x)%11==0] if len(s5)>len(s11): return True s641=[x for x in s if abs(x)%1000==641] summ=sum(s641) sr=summ/len(s641) k=0 mini=3000000 ans=[] for i in range(1,len(s)-1): if f5(s[i-1],s,s[i+1]) and f5f11(s[i-1],s,s[i+1]) and\ s[i-1]>sr and s>sr and s[i+1]>sr: k+=1 mini=min(mini,s[i-1]+s+s[i+1]) print(k,mini) """for i in range(len(s)-2): if 0<(len(str(s))==5) +(len(str(s[i+2]))==5) +(len(str(s[i+1]))==5)< 3 and\ ((s[i+2]%5==0) +(s%5==0) +(s[i+1]%5==0))>((s[i+2]%11==0) +(s%11==0) +(s[i+1]%11==0))and\ s[i+2]>sr and s>sr and s[i+1]>sr: k+=1 ans.append(s[i+2]+s+s[i+1]) print(k,min(ans))""" Тут еще второй способ внизу, без функций.

Ответов - 1

Ж: Вы не учитываете, что у отрицательных четырехзначных чисел длина в строковом формате равна 5. И у меня ваш код долго работает. Вот код, который быстро дает верный ответ. [pre2] s=[int(c) for c in open('d:/17-390.txt').readlines()] n641=[c for c in s if abs(c)%1000==641] usl=lambda s: len([c for c in s if abs(c) in range(10000,100000)]) in [1,2] \ and len([c for c in s if c%5==0])>len([c for c in s if c%11==0]) \ and all(c>(sum(n641)/len(n641)) for c in s) tr=[sum(s[i:i+3]) for i in range(len(s)-2) if usl(s[i:i+3])] print(len(tr), min(tr)) [/pre2]



полная версия страницы