Ошибка.
Попробуйте повторить позже
Дано натуральное число , затем дана последовательность натуральных чисел. Найдите непрерывную последовательность с максимальной суммой, в которой количество нечетных элементов кратно . В качестве ответа выведите сумму данной последовательности.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно целое число — количество чисел. Каждая из следующих строк содержит натуральное число, меньшее 10000.
В ответе укажите два числа: сначала значение для файла , затем для файла .
f = open(’test.txt’) n = int(f.readline()) s = 0 # Сумма всех чисел count_nch = 0 min_s = [10000000]*10 min_s[0] = 0 s_max = 0 for i in range(n): x = int(f.readline()) s += x count_nch += 1*(x % 2 != 0) if s - min_s[count_nch % 10] > s_max: s_max = s - min_s[count_nch % 10] if s < min_s[count_nch % 10]: min_s[count_nch % 10] = s print(s_max)
Ошибка.
Попробуйте повторить позже
Дано натуральное число , затем дана последовательность натуральных чисел. Найдите непрерывную последовательность, внутри которой сумма элементов на нечетных позициях равна сумме элементов на четных позициях. В качестве ответа выведите сумму данной последовательности. Если их несколько, то в качестве ответа укажите наибольшую из сумм.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно целое число — количество чисел. Каждая из следующих строк содержит натуральное число, меньшее .
В ответе укажите два числа: сначала значение для файла , затем для файла .
f = open(’27A_2.txt’) n = int(f.readline()) s_chet = 0 s_nechet = 0 min_ps = [10e20] * 100000000 ans = 0 for i in range(n): x = int(f.readline()) s_chet += x * (i % 2 == 0) s_nechet += x * (i % 2 != 0) s = s_chet + s_nechet l = s_nechet - s_chet ans = max(ans, s - min_ps[l]) min_ps[l] = min(min_ps[l], s) print(ans)
Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
Последовательность натуральных чисел характеризуется числом X, равным длине цепочки, сумма чисел которой максимальна и делится на . Найдите разность суммы и X. Гарантируется, что хотя бы одна такая сумма в последовательности есть. Если существует несколько подпоследовательностей с равной максимальной суммой, нужно выбрать последовательность, которая заканчивается раньше, т.е. последний элемент имеет меньший индекс.
Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности.
В ответ укажите числа для файла A и для файла B через пробел.
f = open(’27a.txt’) n = int(f.readline()) mins = [0] + [1000000000] * 20 ind = [-1] + [-100] * 20 maxim, summ = 0, 0 for i in range(n): x = int(f.readline()) summ += x ost = summ % 21 if summ - mins[ost] > maxim: maxim = summ - mins[ost] dlina = i - ind[ost] if summ < mins[ost]: mins[ost] = summ ind[ost] = i print(maxim - dlina)
Ошибка.
Попробуйте повторить позже
Последовательность натуральных чисел характеризуется числом , равным длине цепочки, сумма чисел которой минимальна и делится на . Если таких цепочек несколько, возьмите ту, которая имеет наименьшую длину. Найдите разность суммы и . Гарантируется, что хотя бы одна такая сумма в последовательности есть. Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно целое число — количество чисел. Каждая из следующих строк содержит натуральное число, меньшее .
В ответе укажите два числа: сначала искомое значение для файла , затем для файла .
f = open(’27A.txt’) n = int(f.readline()) maxs = [-10e16] * 11 ind = [-100] * 11 ind[0] = -1 maxs[0] = 0 summ, minim = 0, 10e10 for i in range(n): x = int(f.readline()) summ += x ost = summ % 11 if summ - maxs[ost] < minim: minim = summ - maxs[ost] dlina = i - ind[ost] elif summ - maxs[ost] == minim and i - ind[ost] <= dlina: dlina = i - ind[ost] if summ >= maxs[ost]: maxs[ost] = summ ind[ost] = i print(minim - dlina)
Ошибка.
Попробуйте повторить позже
Последовательность натуральных чисел характеризуется числом , равным наибольшей длине цепочки, сумма чисел которой максимальна и делится на . Найдите результат произведения такой суммы на . Не гарантируется, что хотя бы одна такая сумма в последовательности есть. Если такой суммы нет, выведите . Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно целое число — количество чисел. Каждая из следующих строк содержит натуральное число, меньшее .
В ответе укажите два числа: сначала искомое значение для файла , затем для файла .
f = open(’fileB.txt’) n = int(f.readline()) mins = [10e16] * 751 mins[0] = 0 ind = [-100] * 751 ind[0] = -1 maxim, summ = 0, 0 for i in range(n): x = int(f.readline()) summ += x ost = summ % 751 if summ - mins[ost] > maxim: maxim = summ - mins[ost] dlina = i - ind[ost] if summ < mins[ost]: mins[ost] = summ ind[ost] = i if maxim != 0: print(maxim * dlina) else: print(-1)
Ошибка.
Попробуйте повторить позже
Последовательность натуральных чисел характеризуется числом , равным длине цепочки, сумма чисел которой максимальна и делится на . Найдите результат целочисленного деления такой суммы на . Гарантируется, что хотя бы одна такая сумма в последовательности есть. Если подходящих цепочек несколько, то найдите длину той, что заканчивается раньше. Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно целое число — количество чисел. Каждая из следующих строк содержит натуральное число, меньшее .
В ответе укажите два числа: сначала искомое значение для файла , затем для файла .
f = open(’fileA.txt’) n = int(f.readline()) mins = [10e16] * 24 mins[0] = 0 ind = [-100] * 24 ind[0] = -1 maxim, summ = 0, 0 for i in range(n): x = int(f.readline()) summ += x ost = summ % 24 if summ - mins[ost] > maxim: maxim = summ - mins[ost] dlina = i - ind[ost] if summ < mins[ost]: mins[ost] = summ ind[ost] = i print(maxim // dlina)
Ошибка.
Попробуйте повторить позже
Последовательность натуральных чисел характеризуется числом , равным длине цепочки, сумма чисел которой максимальна и делится на . Найдите такую сумму и число , деленное на нацело. В ответе укажите их сумму. Гарантируется, что хотя бы одна такая сумма в последовательности есть. Если подходящих цепочек несколько, то найдите длину той, что заканчивается раньше. Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно целое число — количество чисел. Каждая из следующих строк содержит натуральное число, меньшее .
В ответе укажите два числа: сначала искомое значение для файла , затем для файла .
f = open(’fileA.txt’) n = int(f.readline()) mins = [10e16] * 54 mins[0] = 0 ind = [-100] * 54 ind[0] = -1 maxim, summ = 0, 0 for i in range(n): x = int(f.readline()) summ += x ost = summ % 54 if summ - mins[ost] > maxim: maxim = summ - mins[ost] dlina = i - ind[ost] if summ < mins[ost]: mins[ost] = summ ind[ost] = i print(maxim + dlina // 3)
Ошибка.
Попробуйте повторить позже
Последовательность натуральных чисел характеризуется числом , равным длине цепочки, сумма чисел которой максимальна и делится на 92. Найдите . Гарантируется, что хотя бы одна такая сумма в последовательности есть. Если подходящих цепочек несколько, то найдите длину той, что заканчивается раньше. Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно целое число — количество чисел. Каждая из следующих строк содержит натуральное число, меньшее .
В ответе укажите два числа: сначала искомое значение для файла , затем для файла .
f = open(’fileA.txt’) n = int(f.readline()) mins = [10e16] * 92 mins[0] = 0 ind = [-100] * 92 ind[0] = -1 maxim, summ = 0, 0 for i in range(n): x = int(f.readline()) summ += x ost = summ % 92 if summ - mins[ost] > maxim: maxim = summ - mins[ost] dlina = i - ind[ost] if summ < mins[ost]: mins[ost] = summ ind[ost] = i print(dlina)
Ошибка.
Попробуйте повторить позже
Последовательность натуральных чисел характеризуется числом , равным длине цепочки, сумма чисел которой максимальна и делится на . Найдите . Гарантируется, что хотя бы одна такая сумма в последовательности есть. Если подходящих цепочек несколько, то найдите длину той, что заканчивается раньше. Цепочкой называется подпоследовательность элементов, идущих подряд в исходной последовательности.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно целое число — количество чисел. Каждая из следующих строк содержит натуральное число, меньшее .
В ответе укажите два числа: сначала искомое значение для файла , затем для файла .
f = open(’fileA.txt’) n = int(f.readline()) mins = [10e16] * 36 mins[0] = 0 ind = [-100] * 36 ind[0] = -1 maxim, summ = 0, 0 for i in range(n): x = int(f.readline()) summ += x ost = summ % 36 if summ - mins[ost] > maxim: maxim = summ - mins[ost] dlina = i - ind[ost] if summ < mins[ost]: mins[ost] = summ ind[ost] = i print(dlina)
Ошибка.
Попробуйте повторить позже
Дано натуральное число , затем дана последовательность целых чисел. Необходимо найти максимально возможную сумму её непрерывной подпоследовательности, в которой количество положительных нечётных элементов кратно .
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно целое число — количество чисел. Каждая из следующих строк содержит целое число, меньшее 10000.
В ответе укажите два числа: сначала значение для файла , затем для файла .
Неэффективное решение
f = open("7A.txt") n = int(f.readline()) ans = 0 a = [] for i in range(n): a.append(int(f.readline())) for i in range(n): s = 0 counter = 0 # счетчик полож. нечет. эл-ов for j in range(i, n): s += a[j] if (a[j] > 0) and (a[j] % 2 != 0): counter += 1 if counter % 50 == 0: ans = max(ans, s) print(ans)
Эффективное решение
f = open("7B.txt") n = int(f.readline()) minpref = [0] + [100000000] * 49 # преф суммы по кол-ву полож.неч. чисел ans, counter, s = 0, 0, 0 for i in range(n): x = int(f.readline()) s += x if x > 0 and x % 2 != 0: counter += 1 ans = max(ans, s - minpref[counter % 50]) minpref[counter % 50] = min(s, minpref[counter % 50]) print(ans)
Ошибка.
Попробуйте повторить позже
Дано натуральное число , затем дана последовательность натуральных чисел. Необходимо определить количество непрерывных подпоследовательностей, сумма элементов которых кратна 1000.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно целое число — количество чисел. Каждая из следующих строк содержит натуральное число, меньшее 10000.
В ответе укажите два числа: сначала значение для файла , затем для файла .
Неэффективное решение
f = open("6A.txt") n = int(f.readline()) a = [] ans = 0 for i in range(n): a.append(int(f.readline())) for i in range(n): s = 0 for j in range(i, n): s += a[j] if s % 1000 == 0: ans += 1 print(ans)
Эффективное решение
f = open("6B.txt") n = int(f.readline()) prefs = [0] * 1000 # кол-во преф. сумм по остаткам ans, s = 0, 0 for i in range(n): x = int(f.readline()) s += x if s % 1000 == 0: ans += 1 ans += prefs[s % 1000] prefs[s % 1000] += 1 print(ans)
Ошибка.
Попробуйте повторить позже
Последовательность натуральных чисел характеризуется числом , равным длине цепочки, сумма чисел которой минимальна и делится на . Найдите разность минимальной суммы и . Гарантируется, что хотя бы одна такая сумма в последовательности есть. Если существует несколько подпоследовательностей с равной минимальной суммой, нужно выбрать последовательность, которая заканчивается раньше т.е. последний элемент имеет меньший индекс. Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности.
В файле первым числом идет количество чисел, а далее сами числа.
В качестве ответа укажите через пробел ответ для файла А и ответ для файла B.
f = open(’fileA.txt’) n = int(f.readline()) maxs = [-10e16] * 17 ind = [-100] * 17 ind[0] = -1 maxs[0] = 0 dlina = 0 summ, minim = 0, 10e10 # Мин. сумму не нашли - обозначаем большим числом for i in range(n): x = int(f.readline()) summ += x ost = summ % 17 if summ - maxs[ost] < minim: minim = summ - maxs[ost] dlina = i - ind[ost] if summ > maxs[ost]: maxs[ost] = summ ind[ost] = i print(minim - dlina)
Ошибка.
Попробуйте повторить позже
Последовательность натуральных чисел характеризуется числом , равным длине цепочки, сумма чисел которой максимальна и делится на . Найдите . Гарантируется, что хотя бы одна такая сумма в последовательности есть. Если существует несколько подпоследовательностей с равной максимальной суммой, нужно выбрать последовательность, которая заканчивается раньше т.е. последний элемент имеет меньший индекс. Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности.
В файле первым числом идет количество чисел, а далее сами числа.
В качестве ответа укажите через пробел ответ для файла А и ответ для файла B.
n = int(f.readline()) mins = [10e16] * 4 mins[0] = 0 ind = [-100] * 4 # Массив индексов по остатку ind[0] = -1 # i = 0; 0 - (-1) = 1. maxim, summ = 0, 0 dlina = -1 for i in range(n): x = int(f.readline()) summ += x ost = summ % 4 if summ - mins[ost] > maxim: maxim = summ - mins[ost] dlina = i - ind[ost] # Сумма подходит - обновляем if summ < mins[ost]: mins[ost] = summ ind[ost] = i # Сохраняем индекс наим. суммы по кратности print(dlina)
Ошибка.
Попробуйте повторить позже
Последовательность натуральных чисел характеризуется числом и , где —- максимальная сумма цепочки, кратная , а –– максимальная сумма цепочки, кратная . Найдите , сумму и , разделяя их пробелом. Гарантируется, что обе суммы в последовательности есть. Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности.
В файле первым числом идет количество чисел, а далее сами числа.
В качестве ответа укажите через пробел ответ для файла А и ответ для файла B.
f = open(’fileA.txt’) n = int(f.readline()) minsx = [10e16] * 17 minsx[0] = 0 minsy = [10e16] * 6 minsy[0] = 0 summ, maximx, maximy = 0, 0, 0 for i in range(n): x = int(f.readline()) summ += x ostx = summ % 17 osty = summ % 6 if summ - minsx[ostx] > maximx: maximx = summ - minsx[ostx] if summ < minsx[ostx]: minsx[ostx] = summ if summ - minsy[osty] > maximy: maximy = summ - minsy[osty] if summ < minsy[osty]: minsy[osty] = summ print(maximx, maximy, maximx + maximy)
Ошибка.
Попробуйте повторить позже
Последовательность натуральных чисел характеризуется числом , равным максимальной сумме цепочки, кратной . Найдите такую сумму. Гарантируется, что хотя бы одна такая сумма в последовательности есть. Цепочкой называется подпоследовательность символов, идущих подряд в исходной последовательности.
В файле первым числом идет количество чисел, а далее сами числа.
В качестве ответа укажите через пробел ответ для файла А и ответ для файла B.
Пояснение: запись вида 10eN, где N – число, означает 10 ** N
f = open(’fileB.txt’) n = int(f.readline()) mins = [10e16] * 10 # массив мин. сумм кратности 10 mins[0] = 0 maxim, summ = 0, 0 for i in range(n): x = int(f.readline()) summ += x ost = summ % 10 if (summ - mins[ost]) > maxim: # сумма - мин. сумма c таким же остатоком maxim = summ - mins[ost] # дает разность кратную числу if summ < mins[ost]: # минимизируем числа из массива mins mins[ost] = summ print(maxim)
Ошибка.
Попробуйте повторить позже
Подается число n затем n чисел. Требуется найти длину (из скольких элементов она состоит) наибольшей префиксной суммы, чья сумма кратна . Если таких префиксных сумм нет, выведите . Напишите ответ для n и чисел .
n = int(input()) pref = [0] * n pref[0] = int(input()) ans = -1 if pref[0] % 100 == 0: ans = 1 for i in range(1, n): pref[i] = pref[i - 1] + int(input()) if pref[i] % 100 == 0: ans = i + 1 # Индексация с 0 print(ans)
Ошибка.
Попробуйте повторить позже
Подается число n затем n чисел. Требуется посчитать всевозможные префиксные суммы, затем посчитать разности рядом стоящих префиксных сумм (разность от элемента с бОльшим индексом) и вывести их на экран через пробел. Для ответа выведите все суммы для n и чисел .
n = int(input()) pref = [0] * n pref[0] = int(input()) diffs = [0] * (n - 1) # всего n-1 пар подряд идущих чисел и n-1 разностей for i in range(1, n): pref[i] = pref[i - 1] + int(input()) # Заполнение преф. сумм diffs[i - 1] = pref[i] - pref[i - 1] # Разность ближних преф. сумм print(diffs)
Ошибка.
Попробуйте повторить позже
Дана последовательность натуральных чисел. Необходимо найти максимально возможную сумму её непрерывной подпоследовательности, в которой количество нечётных элементов кратно .
Входные данные
Первая строка входного файла содержит целое число — общее количество чисел в наборе. Каждая из следующих строк содержит одно число. Гарантируется, что общая сумма всех чисел не превышет .
Вам даны два входных файла ( и ), каждый из которых имеет описанную выше структуру. В ответе укажите два числа: сначала значение искомой суммы для файла , затем для файла .
Эффективное решение
f = open("27A.txt") n = int(f.readline()) s = 0 odd = [0] + [100000000000000] * 9 count_odd = 0 ans = -100000000000000 for i in range(n): x = int(f.readline()) count_odd += (x % 2 == 1) s += x ost = count_odd % 10 if s - odd[ost] > ans: ans = s - odd[ost] if s < odd[ost]: odd[ost] = s print(ans)
Неэффективное решение
f = open("27A.txt") a = [int(x) for x in f] maxim = -10000000000000 for i in range(n): count_odd = 0 s = 0 for j in range(i, n): s += a[j] count_odd += (a[j] % 2 == 1) if count_odd % 10 == 0: maxim = max(maxim, s) print(maxim)
Ошибка.
Попробуйте повторить позже
Дана последовательность натуральных чисел. Необходимо найти максимально возможную сумму её непрерывной подпоследовательности, в которой количество чётных элементов кратно .
Входные данные
Первая строка входного файла содержит целое число — общее количество чисел в наборе. Каждая из следующих строк содержит одно число. Гарантируется, что общая сумма всех чисел не превышает .
Вам даны два входных файла ( и ), каждый из которых имеет описанную выше структуру. В ответе укажите два числа: сначала значение искомой суммы для файла , затем для файла .
Решение 1 (неэффективное)
f = open("27A.txt") n = int(f.readline()) a = [int(f.readline()) for x in range(n)] ans = 0 for i in range(n): cnt, sum = 0, 0 for j in range(i, n): sum += a[j] if a[j] % 2 == 0: cnt += 1 if cnt % 10 == 0: ans = max(ans, sum) print(ans)
Решение 2 (эффективное)
f = open("27A.txt") n = int(f.readline()) s = 0 even = [0] + [100000000000000] * 9 count_even = 0 ans = -100000000000000 for i in range(n): x = int(f.readline()) count_even += (x % 2 == 0) s += x ost = count_even % 10 if s - even[ost] > ans: ans = s - even[ost] if s < even[ost]: even[ost] = s print(ans)
Ошибка.
Попробуйте повторить позже
Дано число и последовательность из чисел. Рассматриваются все её непрерывные подпоследовательности, сумма элементов каждой из которых кратна . Найдите среди них подпоследовательность с максимальной суммой. Гарантируется, что хотя бы одна такая сумма в последовательности есть.
Даны два входных файла (файл А и файл В), каждый из которых содержит в первой строке одно натуральное число — количество чисел. Каждая из следующих строк содержит целое число. В ответе запишите максимальную сумму кратную трем сначала для файла A, затем для файла B через пробел.
Решение 1 (неэффективное)
f = open(’27.txt’) n = int(f.readline()) a = [int(f.readline()) for i in range(n)] maxim = 0 for i in range(n): s = 0 for j in range(i, n): s += a[j] if s % 3 == 0: maxim = max(maxim, s) print(maxim)
Переборное решение будет обрабатывать более чисел в файле слишком долго, поэтому напишем эффективное решение.
Решение 2 (эффективное)
f = open(’27B.txt’) n = int(f.readline()) minim = [0] + [10000000] * 2 maxim, summ = 0, 0 for i in range(n): summ += int(f.readline()) ost = summ%3 if (summ - minim[ost] > maxim): maxim = summ - minim[ost] if summ < minim[ost]: minim[ost] = summ print(maxim)