Таймкоды: 00:00 Обзор варианта 01:05 Номер 1 (ответ: 22) 05:15 Номер 2 (ответ: xzyw) 10:35 Номер 3 (ответ: 736) 18:07 Номер 4 (ответ: 1100) 21:36 Номер 5 (ответ: 141) 31:33 Номер 6 (ответ: 30) 38:12 Номер 7 (ответ: 128) 43:23 Номер 8 (ответ: 1296) 49:14 Номер 9 (ответ: 607) 54:25 Номер 10 (ответ: 47) 55:52 Номер 11 (ответ: 14) 01:00:09 Номер 12 (ответ: 23) 01:11:58 Номер 13 (ответ: 32) 01:20:31 Номер 14 (ответ: 5) 01:29:58 Номер 15 (ответ: 115) 01:36:08 Номер 16 (ответ: 4043) 01:44:37 Номер 17 (ответ: 5211 20116) 01:58:09 Номер 18 (ответ: 2483 1157) 02:05:22 Номер 19-21 19)9 20)2 3 21)6 02:24:05 Номер 22 (ответ: 3) 02:28:53 Номер 23 (ответ: 376) 02:33:06 Номер 24 (ответ: 297) 02:50:15 Номер 25 (ответ: 7055) 02:52:09 Номер 26 (ответ: 616 9770) 03:06:15 Номер 27 пункт А 03:15:24 Номер 27 (ответ: 150 360685)
27 задача - слишком большой код. Проще. Надо проще. n,*a=map(int,open('27_C.txt')) b=[a[i]-a[i-1] for i in range(1,n)] # разности s=[0]*n # префикс суммы j=0 # текущий минимум d=0 # длина последовательности smax=0 # максимальная сумма for i in range(1,n): s[i]=s[i-1]+b[i-1] if s[i]=smax: smax=sm d=i-j print(d+1)
27-ю задачу можно решить проще. Сумма всех разниц пар соседних элементов подпоследовательности = последний элемент подпоследовательности вычесть первый элемент подпоследовательности. Для частного случая, когда минимальное число идёт раньше максимального (а оба файла в задаче именно такие) достаточно найти количество элементов подпоследовательности, которая начинается с последнего минимума и заканчивается последним максимумом. Универсальное решение: начало подпоследовательности - это номер текущего минимума, окончание - номер элемента, максимально отличающегося (большего) этого минимума. Если минимум или максимальная разница повторяются, используем их последние номера. with open('27_B.txt') as f: n = int(f.readline()) a = [int(t) for t in f] h = -10**6 # максимальная разница cm, l = a[0], 0 # начальный минимум и его положение (подпосл.) for i in range(1,n): d = a[i]-cm # разница между текущим элементом и текущим минимумом if d >= h: # если найденная разница больше или равна макс-й, запоминаем как макс. и её начало (h2) окончание (h1) h = d h1 = l # номер текущего минимума, начало подпосл. h2 = i # номер текущего числа, конец подпосл. if a[i]
"Сумма разниц пар соседних элементов" это тоже самое, что и "последний элемент минус первый элемент". Тогда 27я задача сводится ко совсем простой... В итоге, находим самый большой последний элемент и самый маленький первый элемент. Всё!!!
Решение 9 задачи программным путём: f = open('pro100ege_7.txt') k = 0 for s in f: a = sorted([int(x) for x in s.split()]) if len(set(a)) == 5: if ((a[0] + a[4])*2)
27-ую можно попроще f = open('files/test.txt') f = open('files/27_A_14960.txt') f = open('files/27_B_14960.txt') N = int(f.readline()) a = [int(i) for i in f] l = q = mc = 0 mq = float('-inf') c = 1 for r in range(1, N): c += 1 q += a[r] - a[r-1] if q = mq: mq = q mc = c print(mq, mc)
в 17 код отличается но условие одно и тоже, ответ другой: 4663 6115 вот сам код, мб найдете ошибку кому интересно) s = [int(x) for x in open('17_14952.txt')] res = [] mx121 = max(t for t in range(len(s)) if abs(t) % 1000 == 121) for i in range(len(s) - 2): if (((len(str(s[i])) == 4) \ and s[i] % 2 == 0) + ((len(str(s[i + 1]))) == 4 and s[i + 1] % 2 == 0) + ((len(str(s[i + 2]))) == 4 \ and s[i + 2] % 2 == 0))
Таймкоды:
00:00 Обзор варианта
01:05 Номер 1 (ответ: 22)
05:15 Номер 2 (ответ: xzyw)
10:35 Номер 3 (ответ: 736)
18:07 Номер 4 (ответ: 1100)
21:36 Номер 5 (ответ: 141)
31:33 Номер 6 (ответ: 30)
38:12 Номер 7 (ответ: 128)
43:23 Номер 8 (ответ: 1296)
49:14 Номер 9 (ответ: 607)
54:25 Номер 10 (ответ: 47)
55:52 Номер 11 (ответ: 14)
01:00:09 Номер 12 (ответ: 23)
01:11:58 Номер 13 (ответ: 32)
01:20:31 Номер 14 (ответ: 5)
01:29:58 Номер 15 (ответ: 115)
01:36:08 Номер 16 (ответ: 4043)
01:44:37 Номер 17 (ответ: 5211 20116)
01:58:09 Номер 18 (ответ: 2483 1157)
02:05:22 Номер 19-21 19)9 20)2 3 21)6
02:24:05 Номер 22 (ответ: 3)
02:28:53 Номер 23 (ответ: 376)
02:33:06 Номер 24 (ответ: 297)
02:50:15 Номер 25 (ответ: 7055)
02:52:09 Номер 26 (ответ: 616 9770)
03:06:15 Номер 27 пункт А
03:15:24 Номер 27 (ответ: 150 360685)
так объяснять задачи, что их невозможно переписать под себя, надо уметь
аххаха прям про 27
27 задача - слишком большой код. Проще. Надо проще.
n,*a=map(int,open('27_C.txt'))
b=[a[i]-a[i-1] for i in range(1,n)] # разности
s=[0]*n # префикс суммы
j=0 # текущий минимум
d=0 # длина последовательности
smax=0 # максимальная сумма
for i in range(1,n):
s[i]=s[i-1]+b[i-1]
if s[i]=smax:
smax=sm
d=i-j
print(d+1)
скомуниздю
Почему в 8 задаче в последнем условии стоит "and", если в условии задачи написано "никакие 2 четные ИЛИ 2 нечетные не стоят рядом"?
тоже интересно стало, составители не хотят ответить?
27-ю задачу можно решить проще. Сумма всех разниц пар соседних элементов подпоследовательности = последний элемент подпоследовательности вычесть первый элемент подпоследовательности.
Для частного случая, когда минимальное число идёт раньше максимального (а оба файла в задаче именно такие) достаточно найти количество элементов подпоследовательности, которая начинается с последнего минимума и заканчивается последним максимумом.
Универсальное решение: начало подпоследовательности - это номер текущего минимума, окончание - номер элемента, максимально отличающегося (большего) этого минимума. Если минимум или максимальная разница повторяются, используем их последние номера.
with open('27_B.txt') as f:
n = int(f.readline())
a = [int(t) for t in f]
h = -10**6 # максимальная разница
cm, l = a[0], 0 # начальный минимум и его положение (подпосл.)
for i in range(1,n):
d = a[i]-cm # разница между текущим элементом и текущим минимумом
if d >= h: # если найденная разница больше или равна макс-й, запоминаем как макс. и её начало (h2) окончание (h1)
h = d
h1 = l # номер текущего минимума, начало подпосл.
h2 = i # номер текущего числа, конец подпосл.
if a[i]
для нее есть еще решение, отличное от предложенного в разборе.
@@Teacification Метод частичных сумм?
"Сумма разниц пар соседних элементов" это тоже самое, что и "последний элемент минус первый элемент". Тогда 27я задача сводится ко совсем простой...
В итоге, находим самый большой последний элемент и самый маленький первый элемент. Всё!!!
как номер 15 сделать руками?
Задание №14
for x in range(8):
s = int(f'{x}1{x}',16) + int(f'{x}3{x}3',8)
if any(s == 2**i for i in range(30)):
print(x)
спасибо!!
можете сказать какому знаку неравенства соответствуют слова: не больше, не меньше, более, менее, не более, не менее, больше, меньше?
не больше =, более >, менее , меньше
@@bimbimbim_16 спасибо
Спасибо за варик. Забрал свои 98 баллов, 15 задание по невнимательности запорол. Ну а с 27 вы намудрили со списками, надо было всë на лету делать
27 всё "понятно"
Решение 9 задачи программным путём:
f = open('pro100ege_7.txt')
k = 0
for s in f:
a = sorted([int(x) for x in s.split()])
if len(set(a)) == 5:
if ((a[0] + a[4])*2)
как 17 решить?
a = [int(x) for x in open('252.txt')]
ans = []
b = [s for s in a if(abs(s)%1000==121)]
nini= max(b)
for i in range(len(a)-2):
if (((1000
пора бы заканчивать вам с преподаванием и программированием в целом
27-ую можно попроще
f = open('files/test.txt')
f = open('files/27_A_14960.txt')
f = open('files/27_B_14960.txt')
N = int(f.readline())
a = [int(i) for i in f]
l = q = mc = 0
mq = float('-inf')
c = 1
for r in range(1, N):
c += 1
q += a[r] - a[r-1]
if q = mq:
mq = q
mc = c
print(mq, mc)
в 17 код отличается но условие одно и тоже, ответ другой: 4663 6115
вот сам код, мб найдете ошибку кому интересно)
s = [int(x) for x in open('17_14952.txt')]
res = []
mx121 = max(t for t in range(len(s)) if abs(t) % 1000 == 121)
for i in range(len(s) - 2):
if (((len(str(s[i])) == 4) \
and s[i] % 2 == 0) + ((len(str(s[i + 1]))) == 4 and s[i + 1] % 2 == 0) + ((len(str(s[i + 2]))) == 4 \
and s[i + 2] % 2 == 0))
abs забыл ты