08 Макс/мин, кол-во пар, сумма/разность/произведение кратно/не кратно на расстоянии
Готовиться с нами - ЛЕГКО!
Ошибка.
Попробуйте повторить позже
По каналу связи передается последовательность целых чисел – показания прибора. В течение минут (
–
натуральное число) прибор ежеминутно регистрирует значение напряжения (в условных единицах) в электрической
сети и передает его на сервер.
Определите три таких переданных числа, чтобы между моментами передачи любых двух из них прошло не
менее мин, а сумма этих трех чисел была максимально возможной. Запишите в ответе найденную
сумму.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых в первой строке содержит натуральное число
– минимальное количество минут, которое должно пройти между моментами передачи показаний, а во второй –
количество переданных показаний
. В каждой из следующих
строк находится
одно целое число, по модулю не превышающее 10.000.000, которое обозначает значение напряжения в соответствующую
минуту.
Запишите в ответе два числа: сначала значение искомой величины для файла А, затем – для файла В.
Переборное решение:
f = open(’A.txt’) s = int(f.readline()) # минимальное расстояние между элементами (K) n = int(f.readline()) # количество чисел (N) a = [int(i) for i in f] # список всех показаний прибора mx = -10 ** 10 # переменная для хранения максимальной суммы # перебор всех возможных троек чисел for i in range(n): for j in range(i + 1, n): for k in range(j + 1, n): # проверка выполнения условия: расстояния не меньше K if j - i >= s and k - j >= s: # обновляем максимум, если найденная сумма больше mx = max(mx, a[i] + a[j] + a[k]) # выводим наибольшую возможную сумму трёх чисел print(mx)
Эффективное решение:
f = open(’B.txt’) s = int(f.readline()) # Расстояние между элементами n = int(f.readline()) a = [int(i) for i in f] ans = -10 ** 10 # Максимальное найденное на данный момент число mx_one = mx_two = -10 ** 10 for i in range(2 * s, n): # Обновляем первое максимальное число mx_one = max(mx_one, a[i - 2 * s]) # Обновляем второе максимальное число mx_two = max(mx_two, a[i - s]) # Обновляем ответ ans = max(ans, a[i] + mx_one + mx_two) print(ans)
Ошибка.
Попробуйте повторить позже
По каналу связи передается последовательность целых неотрицательных чисел – показания прибора, полученные с
интервалом в 1 мин в течение минут (
– целое число). Прибор измеряет количество атмосферных осадков,
полученное регистратором за минуту, предшествующую моменту регистрации, и передает это значение в условных
единицах измерения.
Определите два таких переданных числа, чтобы между моментами их передачи прошло не менее мин, а их
сумма была минимально возможной. Укажите найденное суммарное количество осадков.
Даны два входных файла (файл А и файл В), каждый из которых в первой строке содержит натуральное число
– минимальное количество минут, которое должно пройти между моментами передачи показаний, а во второй –
количество переданных показаний
. В каждой из следующих
строк находится
одно целое неотрицательное число, не превышающее 100.000, обозначающее количество осадков за соответствующую
минуту.
Переборное решение:
f = open(’A.txt’) s = int(f.readline()) # Расстояние между элементами n = int(f.readline()) a = [int(i) for i in f] mn = 10 ** 10 for i in range(n): for j in range(i + 1, n): if j - i >= s: mn = min(mn, a[i] + a[j]) print(mn)
Эффективное решение:
f = open(’B.txt’) s = int(f.readline()) # Расстояние между элементами n = int(f.readline()) a = [int(i) for i in f] ans = 10 ** 10 # Минимальное найденное на данный момент число mn_prev = 10 ** 10 for i in range(s, n): # Обновляем минимальное число mn_prev = min(mn_prev, a[i - s]) # Обновляем ответ ans = min(ans, a[i] + mn_prev) print(ans)
Ошибка.
Попробуйте повторить позже
По каналу связи передается последовательность целых неотрицательных чисел – показания прибора, полученные с
интервалом в 1 мин в течение минут (
– целое число). Прибор измеряет количество атмосферных осадков,
полученное регистратором за минуту, предшествующую моменту регистрации, и передает это значение в условных
единицах измерения.
Определите два таких переданных числа, чтобы между моментами их передачи прошло не менее мин, а их
сумма была минимально возможной. Укажите найденное суммарное количество осадков.
Даны два входных файла (файл А и файл В), каждый из которых в первой строке содержит натуральное число
– минимальное количество минут, которое должно пройти между моментами передачи показаний, а во второй –
количество переданных показаний
. В каждой из следующих
строк находится
одно целое неотрицательное число, не превышающее 100.000, обозначающее количество осадков за соответствующую
минуту.
Переборное решение:
f = open(’A.txt’) s = int(f.readline()) # Расстояние между элементами n = int(f.readline()) a = [int(i) for i in f] mn = 10 ** 10 for i in range(n): for j in range(i + 1, n): if j - i >= s: mn = min(mn, a[i] + a[j]) print(mn)
Эффективное решение:
f = open(’B.txt’) s = int(f.readline()) # Расстояние между элементами n = int(f.readline()) a = [int(i) for i in f] ans = 10 ** 10 # Минимальное найденное на данный момент число mn_prev = 10 ** 10 for i in range(s, n): # Обновляем минимальное число mn_prev = min(mn_prev, a[i - s]) # Обновляем ответ ans = min(ans, a[i] + mn_prev) print(ans)
Ошибка.
Попробуйте повторить позже
По каналу связи передается последовательность целых чисел – показания прибора. В течение минут (
–
натуральное число) прибор ежеминутно регистрирует значение напряжения (в условных единицах) в электрическойй
сети и передает его на сервер.
Определите три таких переданных числа, чтобы между моментами передачи любых двух из них прошло не
менее мин, а сумма этих трех чисел была минимально возможной. Запишите в ответе найденную
сумму.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых в первой строке содержит натуральное число
– минимальное количество минут, которое должно пройти между моментами передачи показаний, а во второй –
количество переданных показаний
. В каждой из следующих
строк находится
одно целое число, по модулю не превышающее 10.000.000, которое обозначает значение напряжения в соответствующую
минуту.
Запишите в ответе два числа через пробле: сначала значение искомой величины для файла А, затем – для файла В.
Переборное решение:
f = open(’A.txt’) s = int(f.readline()) # Расстояние между элементами n = int(f.readline()) a = [int(i) for i in f] mn = 10 ** 10 for i in range(n): for j in range(i + 1, n): for k in range(j + 1, n): if j - i >= s and k - j >= s: mn = min(mn, a[i] + a[j] + a[k]) print(mn)
Эффективное решение:
f = open(’B.txt’) s = int(f.readline()) # Расстояние между элементами n = int(f.readline()) a = [int(i) for i in f] ans = 10 ** 10 # минимальное найденное на данный момент число mn_one = mn_two = 10 ** 10 for i in range(2 * s, n): # Обновляем первое минимальное число mn_one = min(mn_one, a[i - 2 * s]) # Обновляем второе минимальное число mn_two = min(mn_two, a[i - s]) # Обновляем ответ ans = min(ans, a[i] + mn_one + mn_two) print(ans)
Ошибка.
Попробуйте повторить позже
По каналу связи передается последовательность целых чисел – показания прибора. В течение минут (
–
натуральное число) прибор ежеминутно регистрирует значение напряжения (в условных единицах) в электрическойй
сети и передает его на сервер.
Определите три таких переданных числа, чтобы между моментами передачи любых двух из них прошло не
менее мин, а сумма этих трех чисел была минимально возможной. Запишите в ответе найденную
сумму.
Входные данные:
Даны два входных файла (файл А и файл В), каждый из которых в первой строке содержит натуральное число
– минимальное количество минут, которое должно пройти между моментами передачи показаний, а во второй –
количество переданных показаний
. В каждой из следующих
строк находится
одно целое число, по модулю не превышающее 10.000.000, которое обозначает значение напряжения в соответствующую
минуту.
Запишите в ответе два числа: сначала значение искомой величины для файла А, затем – для файла В.
Переборное решение:
f = open(’A.txt’) s = int(f.readline()) # Расстояние между элементами n = int(f.readline()) a = [int(i) for i in f] mn = 10 ** 10 for i in range(n): for j in range(i + 1, n): for k in range(j + 1, n): if j - i >= s and k - j >= s: mn = min(mn, a[i] + a[j] + a[k]) print(mn)
Эффективное решение:
f = open(’B.txt’) s = int(f.readline()) # Расстояние между элементами n = int(f.readline()) a = [int(i) for i in f] ans = 10 ** 10 # минимальное найденное на данный момент число mn_one = mn_two = 10 ** 10 for i in range(2 * s, n): # Обновляем первое минимальное число mn_one = min(mn_one, a[i - 2 * s]) # Обновляем второе минимальное число mn_two = min(mn_two, a[i - s]) # Обновляем ответ ans = min(ans, a[i] + mn_one + mn_two) print(ans)
Ошибка.
Попробуйте повторить позже
Имеется набор данных из N целых чисел. Рассматриваются все пары различных элементов последовательности.
Необходимо определить количество пар элементов этого набора, в которых , а сумма делится на
210.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 10000.
В ответе укажите два числа через пробел: сначала значение искомого количества для файла , затем для файла
.
Переборное решение:
f = open(’A.txt’) n = int(f.readline()) a = [int(i) for i in f] cnt = 0 k = 210 # Чему должна быть кратна сумма s = 6 + 1 # Расстояние между элементами for i in range(n): for j in range(i + 1, n): if (a[i] + a[j]) % 210 == 0 and j - i >= s: cnt += 1 print(cnt)
Эффективное решение:
f = open(’B.txt’) n = int(f.readline()) a = [int(i) for i in f] cnt = 0 k = 210 # Чему должна быть кратна сумма s = 6 + 1 # Расстояние между элементами # Список количеств чисел с определенными остатками от деления на k # Например, под индексом 3 хранится кол-во чисел с остатком 3 nums = [0] * k for i in range(s, n): # Считаем остаток от деления первого числа пары на k ost1 = a[i - s] % k # Увеличиваем кол-во чисел с найденным остатком nums[ost1] += 1 # Считаем остаток, который должен быть у числа, # которое можно поставить в пару с текущим ost2 = (k - (a[i] % k)) % k # Увеличиваем ответ на количество образованных пар cnt += nums[ost2] print(cnt)
Ошибка.
Попробуйте повторить позже
Имеется набор данных из N целых чисел. Рассматриваются все пары различных элементов последовательности.
Необходимо определить количество пар элементов этого набора, в которых , а сумма делится на
111.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 10000.
В ответе укажите два числа через пробел: сначала значение искомого количества для файла , затем для файла
.
Переборное решение:
f = open(’A.txt’) n = int(f.readline()) a = [int(i) for i in f] cnt = 0 k = 111 # Чему должна быть кратна сумма s = 3 + 1 # Расстояние между элементами for i in range(n): for j in range(i + 1, n): if (a[i] + a[j]) % 210 == 0 and j - i >= s: cnt += 1 print(cnt)
Эффективное решение:
f = open(’B.txt’) n = int(f.readline()) a = [int(i) for i in f] cnt = 0 k = 111 # Чему должна быть кратна сумма s = 3 + 1 # Расстояние между элементами # Список количеств чисел с определенными остатками от деления на k # Например, под индексом 3 хранится кол-во чисел с остатком 3 nums = [0] * k for i in range(s, n): # Считаем остаток от деления первого числа пары на k ost1 = a[i - s] % k # Увеличиваем кол-во чисел с найденным остатком nums[ost1] += 1 # Считаем остаток, который должен быть у числа, # которое можно поставить в пару с текущим ost2 = (k - (a[i] % k)) % k # Увеличиваем ответ на количество образованных пар cnt += nums[ost2] print(cnt)
Ошибка.
Попробуйте повторить позже
Имеется набор данных из N целых чисел. Рассматриваются все пары различных элементов последовательности.
Необходимо определить количество пар элементов этого набора, в которых , а сумма делится на
114.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 10000.
В ответе укажите два числа через пробел: сначала значение искомого количества для файла , затем для файла
.
Переборное решение:
f = open(’A.txt’) n = int(f.readline()) a = [int(i) for i in f] cnt = 0 k = 114 # Чему должна быть кратна сумма s = 9 + 1 # Расстояние между элементами for i in range(n): for j in range(i + 1, n): if (a[i] + a[j]) % 210 == 0 and j - i >= s: cnt += 1 print(cnt)
Эффективное решение:
f = open(’B.txt’) n = int(f.readline()) a = [int(i) for i in f] cnt = 0 k = 114 # Чему должна быть кратна сумма s = 9 + 1 # Расстояние между элементами # Список количеств чисел с определенными остатками от деления на k # Например, под индексом 3 хранится кол-во чисел с остатком 3 nums = [0] * k for i in range(s, n): # Считаем остаток от деления первого числа пары на k ost1 = a[i - s] % k # Увеличиваем кол-во чисел с найденным остатком nums[ost1] += 1 # Считаем остаток, который должен быть у числа, # которое можно поставить в пару с текущим ost2 = (k - (a[i] % k)) % k # Увеличиваем ответ на количество образованных пар cnt += nums[ost2] print(cnt)
Ошибка.
Попробуйте повторить позже
Имеется набор данных из N целых чисел. Рассматриваются все пары различных элементов последовательности.
Необходимо определить количество пар элементов этого набора, в которых , а сумма делится на
154.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 10000.
В ответе укажите два числа через пробел: сначала значение искомого количества для файла , затем для файла
.
Переборное решение:
f = open(’A.txt’) n = int(f.readline()) a = [int(i) for i in f] cnt = 0 k = 154 # Чему должна быть кратна сумма s = 4 + 1 # Расстояние между элементами for i in range(n): for j in range(i + 1, n): if (a[i] + a[j]) % 210 == 0 and j - i >= s: cnt += 1 print(cnt)
Эффективное решение:
f = open(’B.txt’) n = int(f.readline()) a = [int(i) for i in f] cnt = 0 k = 154 # Чему должна быть кратна сумма s = 4 + 1 # Расстояние между элементами # Список количеств чисел с определенными остатками от деления на k # Например, под индексом 3 хранится кол-во чисел с остатком 3 nums = [0] * k for i in range(s, n): # Считаем остаток от деления первого числа пары на k ost1 = a[i - s] % k # Увеличиваем кол-во чисел с найденным остатком nums[ost1] += 1 # Считаем остаток, который должен быть у числа, # которое можно поставить в пару с текущим ost2 = (k - (a[i] % k)) % k # Увеличиваем ответ на количество образованных пар cnt += nums[ost2] print(cnt)
Ошибка.
Попробуйте повторить позже
Имеется набор данных из N целых чисел. Рассматриваются все пары различных элементов последовательности.
Необходимо определить пару элементов этого набора, такую что , а сумма делится на 130 и
максимально возможна.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 10000.
В ответе укажите два числа через пробел: сначала сумму элементов найденной пары для файла , затем для
файла
.
Переборное решение:
f = open(’A.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = -10 ** 10 k = 130 # Чему должна быть кратна сумма s = 4 + 1 # Расстояние между элементами for i in range(n): for j in range(i + 1, n): if (a[i] + a[j]) % k == 0 and j - i >= s: ans = max(ans, a[i] + a[j]) print(ans)
Эффективное решение:
f = open(’B.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = -10 ** 10 k = 130 # Чему должна быть кратна сумма s = 4 + 1 # Расстояние между элементами # Список максимальных чисел с определенными остатками от деления на k # Например, под индексом 3 хранится максимальное число с остатком 3 nums = [-10 ** 10] * k for i in range(s, n): # Считаем остаток от деления первого числа пары на k ost1 = a[i - s] % k # Обновляем максимум по остатку nums[ost1] = max(nums[ost1], a[i - s]) # Считаем остаток, который должен быть у числа, # которое можно поставить в пару с текущим ost2 = (k - (a[i] % k)) % k # Обновляем ответ, если он больше предыдущего ans = max(ans, a[i] + nums[ost2]) print(ans)
Ошибка.
Попробуйте повторить позже
Имеется набор данных из N целых чисел. Рассматриваются все пары различных элементов последовательности.
Необходимо определить пару элементов этого набора, такую что , а сумма делится на 175 и
максимально возможна.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 100000.
В ответе укажите два числа через пробел: сначала искомое значение для файла , затем для файла
.
Переборное решение:
f = open(’A.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = -10 ** 10 k = 175 # Чему должна быть кратна сумма s = 3 + 1 # Расстояние между элементами for i in range(n): for j in range(i + 1, n): if (a[i] + a[j]) % k == 0 and j - i >= s: ans = max(ans, a[i] + a[j]) print(ans)
Эффективное решение:
f = open(’B.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = -10 ** 10 k = 175 # Чему должна быть кратна сумма s = 3 + 1 # Расстояние между элементами # Список максимальных чисел с определенными остатками от деления на k # Например, под индексом 3 хранится максимальное число с остатком 3 nums = [-10 ** 10] * k for i in range(s, n): # Считаем остаток от деления первого числа пары на k ost1 = a[i - s] % k # Обновляем максимум по остатку nums[ost1] = max(nums[ost1], a[i - s]) # Считаем остаток, который должен быть у числа, # которое можно поставить в пару с текущим ost2 = (k - (a[i] % k)) % k # Обновляем ответ, если он больше предыдущего ans = max(ans, a[i] + nums[ost2]) print(ans)
Ошибка.
Попробуйте повторить позже
Имеется набор данных из N целых чисел. Рассматриваются все пары различных элементов последовательности.
Необходимо определить пару элементов этого набора, такую что , а сумма делится на 141 и
максимально возможна.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 10000.
В ответе укажите два числа через пробел: сначала искомое значение для файла , затем для файла
.
Переборное решение:
f = open(’A.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = -10 ** 10 k = 141 # Чему должна быть кратна сумма s = 6 + 1 # Расстояние между элементами for i in range(n): for j in range(i + 1, n): if (a[i] + a[j]) % k == 0 and j - i >= s: ans = max(ans, a[i] + a[j]) print(ans)
Эффективное решение:
f = open(’B.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = -10 ** 10 k = 141 # Чему должна быть кратна сумма s = 6 + 1 # Расстояние между элементами # Список максимальных чисел с определенными остатками от деления на k # Например, под индексом 3 хранится максимальное число с остатком 3 nums = [-10 ** 10] * k for i in range(s, n): # Считаем остаток от деления первого числа пары на k ost1 = a[i - s] % k # Обновляем максимум по остатку nums[ost1] = max(nums[ost1], a[i - s]) # Считаем остаток, который должен быть у числа, # которое можно поставить в пару с текущим ost2 = (k - (a[i] % k)) % k # Обновляем ответ, если он больше предыдущего ans = max(ans, a[i] + nums[ost2]) print(ans)
Ошибка.
Попробуйте повторить позже
Имеется набор данных из целых чисел. Рассматриваются все пары различных элементов последовательности.
Необходимо определить пару элементов этого набора, при условии, что элементы стоят на расстоянии более
, то есть
, где
— номера элементов последовательности, а сумма делится на
и минимально
возможна.
В первой строке входных данных задаётся количество чисел . В каждой из последующих
строк записано
одно целое положительное число, не превышающее
.
В ответе укажите два числа через пробел: сначала искомое значение для файла , затем для файла
.
Переборное решение:
f = open(’A.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = 10 ** 10 k = 98 # Чему должна быть кратна сумма s = 5 + 1 # Расстояние между элементами for i in range(n): for j in range(i + 1, n): if (a[i] + a[j]) % k == 0 and j - i >= s: ans = min(ans, a[i] + a[j]) print(ans)
Эффективное решение:
f = open(’B.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = 10 ** 10 k = 98 # Чему должна быть кратна сумма s = 5 + 1 # Расстояние между элементами # Список минимальных чисел с определенными остатками от деления на k # Например, под индексом 3 хранится кол-во чисел с остатком 3 nums = [10 ** 10] * k for i in range(s, n): # Считаем остаток от деления первого числа пары на k ost1 = a[i - s] % k # Обновляем минимум по остатку nums[ost1] = min(nums[ost1], a[i - s]) # Считаем остаток, который должен быть у числа, # которое можно поставить в пару с текущим ost2 = (k - (a[i] % k)) % k # Обновляем ответ, если он меньше предыдущего ans = min(ans, a[i] + nums[ost2]) print(ans)
Ошибка.
Попробуйте повторить позже
Имеется набор данных из N целых чисел. Рассматриваются все пары различных элементов последовательности.
Необходимо определить пару элементов этого набора, такую что , а сумма делится на 128 и
минимально возможна.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 10000.
В ответе укажите два числа через пробел: сначала искомое значение для файла , затем для файла
.
Переборное решение:
f = open(’A.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = 10 ** 10 k = 128 # Чему должна быть кратна сумма s = 9 + 1 # Расстояние между элементами for i in range(n): for j in range(i + 1, n): if (a[i] + a[j]) % k == 0 and j - i >= s: ans = min(ans, a[i] + a[j]) print(ans)
Эффективное решение:
f = open(’B.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = 10 ** 10 k = 128 # Чему должна быть кратна сумма s = 9 + 1 # Расстояние между элементами # Список минимальных чисел с определенными остатками от деления на k # Например, под индексом 3 хранится кол-во чисел с остатком 3 nums = [10 ** 10] * k for i in range(s, n): # Считаем остаток от деления первого числа пары на k ost1 = a[i - s] % k # Обновляем минимум по остатку nums[ost1] = min(nums[ost1], a[i - s]) # Считаем остаток, который должен быть у числа, # которое можно поставить в пару с текущим ost2 = (k - (a[i] % k)) % k # Обновляем ответ, если он меньше предыдущего ans = min(ans, a[i] + nums[ost2]) print(ans)
Ошибка.
Попробуйте повторить позже
Имеется набор данных из N целых чисел. Рассматриваются все пары различных элементов последовательности.
Необходимо определить пару элементов этого набора, такую что , а сумма делится на 191 и
минимально возможна.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 10000.
В ответе укажите два числа через пробел: сначала искомое значение для файла , затем для файла
.
Переборное решение:
f = open(’A.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = 10 ** 10 k = 191 # Чему должна быть кратна сумма s = 6 + 1 # Расстояние между элементами for i in range(n): for j in range(i + 1, n): if (a[i] + a[j]) % k == 0 and j - i >= s: ans = min(ans, a[i] + a[j]) print(ans)
Эффективное решение:
f = open(’B.txt’) n = int(f.readline()) a = [int(i) for i in f] ans = 10 ** 10 k = 191 # Чему должна быть кратна сумма s = 6 + 1 # Расстояние между элементами # Список минимальных чисел с определенными остатками от деления на k # Например, под индексом 3 хранится кол-во чисел с остатком 3 nums = [10 ** 10] * k for i in range(s, n): # Считаем остаток от деления первого числа пары на k ost1 = a[i - s] % k # Обновляем минимум по остатку nums[ost1] = min(nums[ost1], a[i - s]) # Считаем остаток, который должен быть у числа, # которое можно поставить в пару с текущим ost2 = (k - (a[i] % k)) % k # Обновляем ответ, если он меньше предыдущего ans = min(ans, a[i] + nums[ost2]) print(ans)
Ошибка.
Попробуйте повторить позже
На спутнике «Восход» установлен прибор, предназначенный для измерения солнечной активности. Каждую минуту прибор передает по каналу связи неотрицательное целое число — количество энергии солнечного излучения, полученной за последнюю минуту, измеренное в условных единицах. Временем, в течение которого происходит передача, можно пренебречь. Необходимо найти в заданной серии показаний прибора количество пар, сумма которых кратна 14, между моментами которых прошло не более 6 минут. Если получить такую сумму не удается, ответ считается равным -1.
Входные данные: Даны два входных файла: файл A и файл B, каждый из которых содержит в первой строке
количество чисел N (). Каждая из следующих N строк содержит одно натуральное число, не
превышающее 1000.
Пример входного файла:
10
7
13
5
4
8
3
9
2
12
7
Для указанных входных данных значением искомого количества пар должно быть число 2.
В ответе укажите два числа через пробел: сначала количество пар для файла А, затем для файла B.
#Пункт А f = open(’1_A.txt’) n = int(f.readline()) a = [int(i) for i in f] k = 0 for i in range(len(a)-1): for j in range(i+1,len(a)): if j - i <= 6: if (a[i]+a[j]) % 14 == 0: k += 1 print(k) #Пункт B f = open(’1_B.txt’) n = int(f.readline()) a = []#Список,в который мы будем складывать числа,к которым мы можем обращаться согласно условию D = 14 k = 0 for i in range(n): x = int(f.readline())#Считываем число из файла for d in a:#Проходимся по списку чисел if (x+d) % D == 0: k += 1#Увеличиваем счётчик если нашлась такая пара,сумма которой будет кратна 14 a += [x]#Добавляем в список текущее число if len(a) > 6:#Если в списке больше 6-ти чисел,то удаляем тот,что добавили раньше всего a.pop(0) print(k)
Ошибка.
Попробуйте повторить позже
На вход программы поступает последовательность из N целых положительных чисел, все числа в последовательности различны. Рассматриваются все пары различных элементов последовательности, находящихся на расстоянии не больше чем 13 (разница в индексах элементов пары должна быть 13 или менее, порядок элементов в паре неважен). Необходимо определить максимальную сумму пары, для которых сумма элементов кратна 24.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 100 000. В качестве результата программа должна вывести одно число: максимальную сумму элементов, находящихся в последовательности на расстоянии не более чем 13, сумма элементов которой кратна 24.
Пример входного файла:
17
7
13
5
4
8
3
9
2
12
7
14
10
31
27
5
3
17
Для указанных входных данных значением искомой суммы должно быть число 48.
В ответе укажите два числа через пробел: сначала максимальную сумму для файла А, затем для файла B.
#Пункт А f = open(’2_A.txt’) n = int(f.readline()) a = [int(i) for i in f] mx = -10**20 for i in range(len(a)-1): for j in range(i+1,len(a)): if (a[i]+a[j]) % 24 == 0 and j - i <= 13: mx = max(mx,a[i]+a[j]) print(mx) #Пункт B f = open(’2_B.txt’) n = int(f.readline()) a = []#Список,в который мы будем складывать числа,к которым мы можем обращаться согласно условию D = 24 mx = -10**20 for i in range(n): x = int(f.readline())#Считываем число из файла for d in a:#Проходимся по списку чисел if (x+d) % D == 0: mx = max(mx,x+d)#Проверяем на максимум, если нашлась такая пара,сумма которой кратна 24 a += [x]#Добавляем в список текущее число if len(a) > 13:#Если в списке больше 13-ти чисел,то удаляем тот,что добавили раньше всего a.pop(0) print(mx)
Ошибка.
Попробуйте повторить позже
На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности, находящихся на расстоянии не больше чем 10 (разница в индексах элементов пары должна быть 10 или менее, порядок элементов в паре неважен). Необходимо определить минимальную сумму пары, для которой сумма элементов делится на 7.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 100 000. В качестве результата программа должна вывести одно число: минимальную сумму элементов, находящихся в последовательности на расстоянии не более чем 10, сумма элементов которой кратна 7.
Пример входного файла:
10
7
13
5
4
8
3
9
2
12
7
Для указанных входных данных значением искомой суммы должно быть число 7.
В ответе укажите два числа через пробел: сначала минимальную сумму для файла А, затем для файла B.
#Пункт А f = open(’3_A.txt’) n = int(f.readline()) a = [int(i) for i in f] mn = 10**20 for i in range(len(a)-1): for j in range(i+1,len(a)): if (a[i]+a[j]) % 7 == 0 and j - i <= 10: mn = min(mn,a[i]+a[j]) print(mn) #Пункт B f = open(’3_B.txt’) n = int(f.readline()) a = []#Список,в который мы будем складывать числа,к которым мы можем обращаться согласно условию mn = 10**20 for i in range(n): x = int(f.readline())#Считываем число из файла for y in a:#Проходимся по списку чисел if (x + y) % 7 == 0: mn = min(mn,x+y)#Проверяем на минимум, если нашлась такая пара,сумма которой кратна 7 a += [x]#Добавляем в список текущее число if len(a) > 10:#Если в списке больше 10-ти чисел,то удаляем тот,что добавили раньше всего a.pop(0) print(mn)
Ошибка.
Попробуйте повторить позже
На спутнике «Восход» установлен прибор, предназначенный для измерения солнечной активности. Каждую минуту прибор передает по каналу связи неотрицательное целое число — количество энергии солнечного излучения, полученной за последнюю минуту, измеренное в условных единицах. Временем, в течение которого происходит передача, можно пренебречь. Необходимо найти в заданной серии показаний прибора количество пар, разность которых кратна 17 и при этом только один из элементов является чётным, между моментами которых прошло не более 15 минут. Если получить такую разность не удается, ответ считается равным -1.
Входные данные: Даны два входных файла: файл A и файл B, каждый из которых содержит в первой строке
количество чисел N (). Каждая из следующих N строк содержит одно натуральное число, не
превышающее 1000.
Пример входного файла:
16
5
13
5
41
6
13
9
2
23
7
8
19
14
4
1
21
Для указанных входных данных значением искомого количества пар должно быть число 3.
В ответе укажите два числа через пробел: сначала количество пар для файла А, затем для файла B.
#Пункт А f = open(’4_A.txt’) n = int(f.readline()) a = [int(i) for i in f] k = 0 for i in range(len(a)-1): for j in range(i+1,len(a)): if j - i <= 15 and (abs(a[i]-a[j])) % 17 == 0 and a[i] % 2 != a[j] % 2: k += 1 print(k) #Пункт B f = open(’4_B.txt’) n = int(f.readline()) a = []#Список,в который мы будем складывать числа,к которым мы можем обращаться согласно условию D = 17 k = 0 for i in range(n): x = int(f.readline())#Считываем число из файла for y in a:#Проходимся по списку чисел if (abs(x-y)) % D == 0 and x % 2 != y % 2: k += 1#Увеличиваем счётчик, если нашлась такая пара,разность которой будет кратна 17 #и при этом в данной паре ровно один чётный элемент a += [x]#Добавляем в список текущее число if len(a) > 15:#Если в списке больше 15-ти чисел,то удаляем тот,что добавили раньше всего a.pop(0) print(k)
Ошибка.
Попробуйте повторить позже
На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности, находящихся на расстоянии не больше чем 19 (разница в индексах элементов пары должна быть 19 или менее, порядок элементов в паре неважен). Необходимо определить максимальную сумму пары, для которой произведение элементов делится на 36.
В первой строке входных данных задаётся количество чисел N. В каждой из последующих N строк записано одно целое положительное число, не превышающее 100 000. В качестве результата программа должна вывести одно число: максимальную сумму элементов, находящихся в последовательности на расстоянии не более чем 19, произведение элементов которой кратно 36.
Пример входного файла:
20
7
13
5
4
8
3
9
2
12
7
6
14
4
5
7
4
8
3
11
8
Для указанных входных данных значением искомой суммы должно быть число 21.
В ответе укажите два числа через пробел: сначала максимальную сумму для файла А, затем для файла B.
#Пункт А f = open(’5_A.txt’) n = int(f.readline()) a = [int(i) for i in f] mx = -10**20 for i in range(len(a)-1): for j in range(i+1,len(a)): if j - i <= 19 and a[i]*a[j] % 36 == 0: mx = max(mx,a[i]+a[j]) print(mx) #Пункт B f = open(’5_B.txt’) n = int(f.readline()) a = []#Список,в который мы будем складывать числа,к которым мы можем обращаться согласно условию mx = -10**20 for i in range(n): x = int(f.readline())#Считываем число из файла for y in a:#Проходимся по списку чисел if x*y % 36 == 0: #Проверяем на максимум, если нашлась такая пара,произведение которой кратно 36 mx = max(mx,x+y) a += [x]#Добавляем в список текущее число if len(a) > 19:#Если в списке больше 19-ти чисел,то удаляем тот,что добавили раньше всего a.pop(0) print(mx)