Ошибка.
Попробуйте повторить позже
Задание выполняется с использованием прилагаемых файлов
В городе расположена исследовательская лаборатория, сейсмографические датчики которой размещены на окружности на равном расстоянии друг от друга. Каждый датчик несколько раз в сутки отправляет сигнал в центр обработки данных. Количество энергии, необходимое для передачи одного сигнала, равно квадрату расстояния от датчика до ЦОД, умноженному на количество сигналов. Рядом с каким датчиком следует разместить центр обработки данных, чтобы энергия, расходуемая на передачу данных от всех датчиков, была минимальной? В качестве ответа укажите все варианты затрат энергии для всех возможных позиций размещения ЦОДа.
Входные данные:
В первой строке входного файла находятся два числа: — количество датчиков () и — расстояние между соседними датчиками (). Каждая из следующих строк содержит одно натуральное число, не превышающее — количество сигналов, отправляемых датчиком за сутки.
Выходные данные:
n чисел — варианты затрат энергии для всех возможных позиций размещения ЦОДа.
В ответе укажите все варианты затрат энергии для всех возможных позиций размещения ЦОДа через пробел.
Пункт А
f = open(’1.txt’) n, r = [int(x) for x in f.readline().split()] a = [int(i) for i in f] cost = [0] * n for i in range(0, n): for j in range(0, n): cost[i] += (min(abs(i - j), n - abs(i - j)) * r) ** 2 * a[j] print(*cost)
Пункт Б
f = open(’27A.txt’) n, r = map(int, f.readline().split()) p = n//2 s = [0]*n a = [] for i in range(n): a.append(int(f.readline())) for i in range(p): s[0] += a[i] for i in range(1, n): s[i] = s[i - 1]-a[i - 1]+a[(i - 1 + p) % n] vvs = [0]*n for i in range(p): vvs[0] += a[i]*(2 * p - 2 * i - 1) for i in range(1, n): vvs[i] = vvs[i - 1] - a[i - 1] * \ (2 * p - 1) + 2 * s[i] - a[(i - 1 + p) % n] uvs = [0]*n for i in range(p): uvs[0] += a[i]*(2 * i + 1) for i in range(1, n): uvs[i] = uvs[i - 1] - a[i - 1] + a[(i - 1 + p) % n] * (2*p + 1) - 2 * s[i] cost = [0]*n for j in range(n): cost[0] += a[j]*(min(j, n - j)*r)**2 for i in range(1, n): cost[i] = cost[i-1] + vvs[(i-p) % n]*r**2 - uvs[i]*r**2 print(*cost)
Ошибка.
Попробуйте повторить позже
Стоимость доставки фантиков равно произведению количества фантиков на квадрат расстояния от сборщика до мусорки.
Дано число — количество мусорок, расположенных по кругу, затем чисел — количество фантиков в каждой мусорке. Требуется найти все убывающие взвешенные суммы для всех начальных позиций пункта сбора. Убывающей взвешенной суммой является сумма членов, имеющих вид , где — i-ое число фантиков, значение i проходит половину круга относительно своей стартовой позиции.
Вывести все эти числа от до .
Для и чисел , , , получатся следующие убывающие взвешенные суммы:
,
,
,
f = open("3.txt") n = int(f.readline()) a = [int(f.readline()) for i in range(n)] s = [0] * n s[0] = sum(a[:n // 2]) for i in range(1, n): s[i] = s[i - 1] - a[i - 1] + a[(i + n // 2 - 1) % n] u = [0] * n #База. Посчитали первую убывающую #взвешенную сумму for i in range(n // 2): t = n//2 - 1 - i u[0] += a[i] * (2*t + 1) #Пересчитываем все остальные for i in range(1, n): u[i] = u[i - 1] + 2*s[i] - a[(i - 1 + n // 2) % n] - a[i - 1] * (2 * (n//2 - 1 - 0) + 1) print(*u)
Ошибка.
Попробуйте повторить позже
Стоимость доставки фантиков равно произведению количества фантиков на квадрат расстояния от сборщика до мусорки.
Дано число — количество мусорок, расположенных по кругу, затем чисел — количество фантиков в каждой мусорке. Требуется найти все возрастающие взвешенные суммы для всех начальных позиций пункта сбора. Возрастающей взвешенной суммой является сумма членов, имеющих вид , где — i-ое число фантиков, значение i проходит половину круга относительно своей стартовой позиции.
Вывести все эти числа от до .
Для и чисел , , , получатся следующие возрастающие взвешенные суммы:
,
,
,
f = open("2.txt") n = int(f.readline()) a = [int(f.readline()) for i in range(n)] s = [0] * n s[0] = sum(a[:n // 2]) for i in range(1, n): s[i] = s[i - 1] - a[i - 1] + a[(i + n // 2 - 1) % n] v = [0] * n #База. Посчитали первую возрастающую #взвешенную сумму for i in range(n // 2): v[0] += a[i] * (2*i + 1) #Пересчитываем все остальные for i in range(1, n): v[i] = v[i - 1] - 2*s[i - 1] + a[i - 1] + a[(i - 1 + n//2) % n] * ((n//2 - 1)*2 + 1) print(*v)
Ошибка.
Попробуйте повторить позже
Стоимость доставки фантиков равно произведению количества фантиков на квадрат расстояния от сборщика до мусорки.
Дано число — количество мусорок, расположенных по кругу, затем чисел — количество фантиков в каждой мусорке. Какова будет суммарная стоимость доставки фантиков, если расположить пункт сбора в самом начале?
f = open("1.txt") n = int(f.readline()) a = [int(f.readline()) for i in range(n)] cost = 0 for i in range(n): cost += a[i]*(min(i, n - i) ** 2) print(cost)
Ошибка.
Попробуйте повторить позже
На кольцевой автодороге с двусторонним движением находится многоэтажных жилых домов (не более одного дома на каждом километре дороги). Длина кольцевой автодороги равна км. Нулевой километр и -й километр находятся в одной точке. Жители домов ежедневно получают почту, которую доставляют роботы-почтальоны. Почта упакована в доставочные пакеты, каждый из которых вмещает не более кг посылок или писем. Каждый доставочный пакет используется для доставки почты только в один жилой дом, при этом в каждый дом может быть доставлено не более одного пакета с неполной загрузкой. Известно, что заряд аккумулятора робота-почтальона позволяет ему проходить не более км, заряд аккумулятора для возвращения робота в почтовое отделение не учитывается. Почтовое отделение открыли в одном из домов таким образом, чтобы количество доставляемых пакетов с корреспонденцией было максимальным. Почта в те дома, которые находятся на расстоянии более от почтового отделения, не доставляется. Определите необходимое количество доставочных пакетов в этом почтовом отделении.
Входные данные:
В первой строке стоят числа и — количество жилых домов, длина кольцевой автодороги в километрах и максимальное расстояние, на которое робот может осуществлять доставку почтовых отправлений.
В каждой из следующих строк находятся два числа: номер километра кольцевой автодороги, на котором расположен жилой дом, и вес ежедневной корреспонденции (все числа натуральные, вес писем и посылок для каждого дома не превышает 1000 кг). Данные указаны в порядке расположения домов на автодороге.
Пример входных данных:
При таких исходных данных оптимальное расположение почтового отделения – в доме с номером 3. В этом случае количество пакетов для доставки корреспонденции составит: 3 (для дома 1) + 3 (для дома 3) + 2 (для дома 5) = 8. В дома 7 и 9 почту доставить не удаётся.
В ответе укажите два числа: сначала искомое значение для файла , затем для файла .
f = open(’27b.txt’) n, k, v, m = list(map(int, f.readline().split())) a = [0] * k for i in range(n): kilometer_num, pochta = list(map(int, f.readline().split())) a[kilometer_num % k] = pochta // v + (pochta % v > 0) min_s = sum(a) if m < (k + 1) // 2 - 1: c = sum(a[:m*2 + 1]) if a[m]: min_s = c else: min_s = 0 for i in range(1, k): c += a[(i + m * 2) % k] - a[i - 1] if a[(i + m) % k]: min_s = max(min_s, c) print(min_s)
Ошибка.
Попробуйте повторить позже
На кольцевой автодороге с двусторонним движением находится заправочных станций. Длина кольцевой автодороги равна км, нулевой километр и -й километр находятся в одной точке. Код заправочной станции совпадает с расстоянием этой станции до нулевой отметки дороги в километрах. На заправочные станции нужно ежедневно доставлять бензин из бензохранилища, которое требуется разместить рядом с одной из заправочных станций. Бензин поставляется в цистернах объёмом м3 каждая, затраты на доставку вычисляются как произведение расстояния на количество цистерн, которые требуются для полной заправки бензоколонок станции (для каждой станции нужно своё количество цистерн, лишь одна цистерна может быть заполнена не полностью). За один рейс бензовоз доставляет бензин только на одну заправочную станцию. Бензохранилище расположено так, чтобы суммарные затраты на доставку бензина были минимальными. Определите минимально возможные суммарные затраты на доставку бензина.
Входные данные:
Первая строка содержит три числа , и — количество заправочных станций, длина кольцевой автодороги в километрах и объём цистерны.
В каждой из следующих строк находятся два числа: номер километра кольцевой автодороги, на котором расположена заправочная станция, и количество бензина, которое нужно туда доставить (все числа натуральные). Заправочные станции перечисляются в порядке их расположения на автодороге.
Пример входных данных:
При таких исходных данных лучше всего расположить бензохранилище около заправочной станции с кодом 3. При этом затраты на доставку бензина составят .
В ответе укажите два числа: сначала искомое значение для файла , затем для файла .
f = open(’27b.txt’) n, k, v = map(int, f.readline().split()) a = [0] * k k_del, ost = k // 2, k % 2 for i in range(n): kilometer_num, kolvo = map(int, f.readline().split()) a[kilometer_num % k] = kolvo // v + (kolvo % v > 0) min_sum = 10**25 s = 0 # Считаем минимальную сумму доставки, если завод стоит на нулевом километре for i in range(1, k): s += a[i] * (2*k_del + ost - abs(2*(i-k_del) - ost)) // 2 d = a[0] + sum(a[k_del + 2:k]) - sum(a[1:k_del + 1]) for i in range(1, k): s += d d += 2 * a[i] - a[(k_del + i) % k] - a[(k_del + i + ost) % k] min_sum = min(min_sum, s) print(min_sum)
Ошибка.
Попробуйте повторить позже
В городе расположена кольцевая автодорога длиной в километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод таким образом, чтобы стоимость доставки мусора была минимальной. Стоимость доставки мусора вычисляется, как вместимость пункта сбора умноженная на расстояние от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора расстояние считается нулевым. Контейнеры нумеруются с до .
Рядом с каким пунктом сбора мусора нужно поставить мусороперерабатывающий завод?
Входные данные:
Первое число — количество контейнеров для мусора. Последующие чисел — количество килограмм мусора, которое производится на точке.
Выходные данные:
Одно число — номер контейнер для мусора рядом с которым стоит расположить перерабатывающий завод.
Пример входных данных:
Для данного примера ответ —
f = open(’3B.txt’) n = int(f.readline()) a = [int(f.readline()) for i in range(n)] summa = sum(a) s = [0]*n s[0] = sum(a[0:n//2]) for i in range(1,n): s[i] = s[i-1]-a[i-1]+a[((i-1)+n//2)%n] p = [0]*n for i in range(n): p[i] = summa-s[i] price = [0]*n for i in range(n//2): price[0]+=a[i]*i for i in range(n//2,n): price[0]+=a[i]*(n-i) mi = 10**20 number = -1 for i in range(1,n): price[i] = price[i-1] - s[i] + p[i] if price[i]<mi: mi = price[i] number = i+1 print(number)
Ошибка.
Попробуйте повторить позже
В городе расположена кольцевая автодорога длиной в километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги около -ого пункта сборки мусора поставили мусороперерабатывающий завод. Стоимость доставки мусора вычисляется как вместимость пункта сбора, умноженная на расстояние от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора, расстояние считается нулевым. Контейнеры нумеруются с 1 до . Требуется найти модуль разницы стоимостей сбора всего мусора при перемещении завода с -ой позиции контейнера на (при , -ая позиция соответствует 1 позиции контейнера).
Описание входных данных:
Первое число — количество контейнеров для мусора, второе число - номер контейнера для мусора, рядом с которым стоит перерабатывающий завод. Последующие N чисел — количество килограмм мусора, которое производится на точке.
file = open(’27-1.txt’) n = int(file.readline()) k = int(file.readline()) - 1 a = [int(file.readline()) for i in range(n)] s = [sum(a[0:n // 2])] for i in range(1, n): s.append(s[i - 1] - a[i - 1] + a[(i - 1 + n // 2) % n]) summa = sum(a) p = [] for i in range(n): p.append(summa - s[i]) # ищем стоимость, если завод стоит на # k-ой позиции price = 0 for i in range(1, n): price += min(i, n - i) * a[(i + k) % n] # найдем k+1 стоимость new_price = price - s[(k + 1) % n] + p[(k + 1) % n] print(abs(price - new_price))
Ошибка.
Попробуйте повторить позже
В городе расположена кольцевая автодорога длиной в километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод таким образом, чтобы стоимость доставки мусора была минимальной.
Стоимость доставки мусора вычисляется, как вместимость пункта сбора умноженная на расстояние от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора расстояние считается нулевым.
Контейнеры нумеруются с 1 до . Рядом с каким пунктом сбора мусора нужно поставить мусороперерабатывающий завод?
Описание входных данных:
Первое число — количество контейнеров для мусора. Последующие чисел — количество килограмм мусора, которое производится на точке.
Описание выходных данных:
Одно число — номер контейнера для мусора рядом с которым стоит расположить перерабатывающий завод.
file = open(’1.txt’) n = int(file.readline()) a = [int(file.readline()) for i in range(n)] s = [sum(a[0:n // 2])] for i in range(1, n): s.append(s[i - 1] - a[i - 1] + a[(i - 1 + n // 2) % n]) summa = sum(a) p = [] for i in range(n): p.append(summa - s[i]) price = 0 for i in range(n // 2): price += i * a[i] for i in range(n // 2, n): price += (n - i) * a[i] minim = price min_k = -1 for i in range(1, n): price -= s[i] price += p[i] if price < minim: minim = price min_k = i + 1 print(min_k)
Ошибка.
Попробуйте повторить позже
У медицинской компании есть пунктов приёма биоматериалов на анализ. Все пункты расположены вдоль автомагистрали и имеют номера, соответствующие расстоянию от нулевой отметки до конкретного пункта. Известно количество пробирок, которое ежедневно принимают в каждом из пунктов. Пробирки перевозят в специальных транспортировочных контейнерах вместимостью пробирок. Каждый транспортировочный контейнер упаковывается в пункте приёма и вскрывается только в лаборатории. Компания планирует открыть лабораторию в одном из пунктов. Стоимость перевозки биоматериалов равна произведению расстояния от пункта до лаборатории на количество контейнеров с пробирками. Общая стоимость перевозки за день равна сумме стоимостей перевозок из каждого пункта в лабораторию. Лабораторию расположили в одном из пунктов приёма биоматериалов таким образом, что общая стоимость доставки биоматериалов из всех пунктов минимальна. Определите минимальную общую стоимость доставки биоматериалов из всех пунктов приёма в лабораторию.
Входные данные:
Даны два входных файла — и , каждый из которых содержит в первой строке число () – количество пунктов приёма биоматериалов, и число () – вместимость транспортировочного контейнера. Каждая из следующих строк содержит два натуральных числа: номер пункта и количество пробирок (не превышающее 10000). Пункты перечислены в произвольном порядке.
Пример входного файла:
6 96
5 4
7 3
1 100
10 190
2 200
8 2
При таких исходных данных (вместимость транспортировочного контейнера равна 96 пробирок) компании выгодно открыть лабораторию в пункте 2. В том случае сумма транспортных затрат составит . Ответ: 32.
Неэффективное решение
f = open(’27_A.txt’) n, v = map(int, f.readline().split()) a = [] for i in range(n): s, k = map(int, f.readline().split()) # кол-во сумок if k % v == 0: c = k//v else: c = k//v + 1 a.append([s, c]) a.sort() min_sum = 10**20 for i in range(n): new_sum = 0 for j in range(n): new_sum += abs(a[i][0]-a[j][0])*a[j][1] min_sum = min(min_sum, new_sum) print(min_sum)
Ээффективное решение
f = open(’27_B.txt’) n, v = map(int, f.readline().split()) a = [] for i in range(n): s, k = map(int, f.readline().split()) # кол-во сумок if k % v == 0: c = k//v else: c = k//v + 1 a.append([s, c]) a.sort() # префиксные суммы количества сумок в первых n пунктах bags = [0]*n bags[0] = a[0][1] for i in range(1,n): bags[i] = bags[i-1] + a[i][1] #стоимость доставки в нулевом пункте s = 0 for j in range(n): s += abs(a[0][0]-a[j][0])*a[j][1] min_sum = s for i in range(1,n): diff = a[i][0] - a[i-1][0] #расстояние между двумя пунктами #Пересчет суммы #для предыдущих пунктов дороже, для следующих дешевле s = s + diff*bags[i-1] - diff*(bags[n-1]-bags[i-1]) #Пересчет минимума min_sum = min(min_sum,s) print(min_sum)
Ошибка.
Попробуйте повторить позже
В городе расположена кольцевая автодорога длиной в километров с движением в обе стороны. На каждом третьем километре установлены контейнеры для мусора. Нулевой километр и -й километр автодороги находятся в одной точке. Известно количество мусора, которое накапливается ежедневно в каждом из контейнеров. Из каждого пункта мусор вывозит отдельный мусоровоз. Стоимость доставки мусора вычисляется как произведение количества мусора на расстояние от пункта до центра переработки. Центр переработки отходов открыли в одном из пунктов сбора мусора таким образом, чтобы общая стоимость доставки мусора из всех пунктов в этот центр была минимальной.
Определите минимальные расходы на доставку мусора в центр переработки отходов.
Описание входных данных:
Первое число — количество контейнеров для мусора. Последующие чисел — количество килограмм мусора, которое производится на точке.
Описание выходных данных:
Одно число — минимальные расходы на доставку мусора в центр переработки отходов.
В ответе укажите два числа: сначала значение искомой величины для файла , затем — для файла .
f = open("7B.txt") n = int(f.readline()) a = [int(f.readline())*3 for i in range(n)] s = [0] * n sum = 0 right, left = 0, 0 for i in range(1, n // 2): sum += a[i] * i + a[n - i] * i right += a[i] left += a[n - i] sum += a[n // 2] * n // 2 s[0] = sum for i in range(1, n): s[i] = s[i - 1] + left + a[i - 1] - right - a[(i + (n // 2) - 1) % n] right = right - a[i] + a[(i + (n // 2) - 1) % n] left = left - a[(i + (n // 2)) % n] + a[i - 1] print(min(s))
Ошибка.
Попробуйте повторить позже
В городе расположена кольцевая автодорога длиной в километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод таким образом, чтобы стоимость доставки мусора была минимальной. Стоимость доставки мусора вычисляется, как вместимость пункта сбора умноженная на расстояние от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора расстояние считается нулевым. Контейнеры нумеруются с до . Рядом с каким пунктом сбора мусора нужно поставить мусороперерабатывающий завод?
Описание входных данных:
Первое число — количество контейнеров для мусора. Последующие чисел — количество килограмм мусора, которое производится на точке.
Описание выходных данных:
Одно число — номер контейнера для мусора рядом с которым стоит расположить перерабатывающий завод.
В ответе укажите два числа: сначала значение искомой величины для файла , затем — для файла .
f = open("6A.txt") n = int(f.readline()) a = [int(f.readline()) for i in range(n)] s = [sum(a[0:n // 2])] for i in range(1, n): s.append(s[i - 1] - a[i - 1] + a[(i + n // 2 - 1) % n]) summa = sum(a) p = [] for i in range(n): p.append(summa - s[i]) price = 0 for i in range(n // 2): price += i * a[i] for i in range(n // 2, n): price += (n - i) * a[i] minim = price min_k = 1 for i in range(1, n): price -= s[i] price += p[i] if price < minim: minim = price min_k = i + 1 print(min_k)
Ошибка.
Попробуйте повторить позже
В городе расположена кольцевая автодорога длиной в километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги около -ого пункта сборки мусора поставили мусороперерабатывающий завод. Стоимость доставки мусора вычисляется, как вместимость пункта сбора умноженная на расстояние от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора расстояние считается нулевым. Контейнеры нумеруются с до . Требуется найти модуль разницы стоимостей сбора всего мусора при перемещении завода с -ой позиции контейнера на (при , -ая позиция соответствует 1 позиции контейнера).
Описание входных данных:
Первое число — количество контейнеров для мусора, второе число — номер контейнера для мусора рядом с которым стоит перерабатывающий завод. Последующие чисел — количество килограмм мусора, которое производится на точке.
Описание выходных данных:
Одно число — модуль разницы стоимостей сбора мусора при перемещении завода с -ой позиции контейнера на (при , -ая позиция соответствует позиции контейнера).
В ответе укажите два числа: сначала значение искомой величины для файла , затем — для файла .
f = open("5A.txt") n = int(f.readline()) k = int(f.readline()) - 1 a = [int(f.readline()) for i in range(n)] s = [sum(a[0:n // 2])] for i in range(1, n): s.append(s[i - 1] - a[i - 1] + a[(i - 1 + n // 2) % n]) summa = sum(a) p = [] for i in range(n): p.append(summa - s[i]) # ищем стоимость, если завод стоит на # k-ой позиции price = 0 for i in range(1, n): price += min(i, n - i) * a[(i + k) % n] # найдем k+1 стоимость new_price = price - s[k + 1] + p[k + 1] print(abs(price - new_price))
Ошибка.
Попробуйте повторить позже
Дано число — количество мусорок, расположенных по кругу, затем чисел — количество фантиков во всех этих мусорках, требуется найти количество фантиков, которое соберёт Максим за половину круга для всех его начальных позиций. Вывести все эти числа от до
f = open("4.txt") n = int(f.readline()) a = [int(f.readline()) for i in range(n)] s = [0] * n s[0] = sum(a[:n // 2]) for i in range(1, n): s[i] = s[i - 1] - a[i - 1] + a[(i + n // 2 - 1) % n] print(*s)
Ошибка.
Попробуйте повторить позже
Дано число — количество мусорок, расположенных по кругу, затем чисел — количество фантиков во всех этих мусорках. Требуется найти количество фантиков, которое соберёт Рома, если пройдет круг от элемента с номером до элемента с номером . принимает значения от до . Рома может начинать передвижение по кругу только с мусорок, номера которых четны.
Выведите наибольшее количество фантиков, которое Рома может собрать.
f = open("3.txt") n = int(f.readline()) a = [int(f.readline()) for i in range(n)] s = [0] * n s[0] = sum(a[:n//2]) for i in range(2, n, 2): s[i] = s[i - 2] - a[i - 1] - a[i - 2] + a[(n//2-2+i) % n] + a[(n//2-1+i) % n] print(max(s))
Ошибка.
Попробуйте повторить позже
Дано число — количество мусорок, расположенных по кругу, затем чисел — количество фантиков во всех этих мусорках, требуется найти количество фантиков, которое соберёт ИВ, если пройдет по кругу от элемента с номером i до элемента с номером принимает значения от до . ИВ может двигаться только в одну сторону (то есть, ИВ не может разворачиваться и идти собирать фантики в мусорках, которые уже посетил).
Найдите и выведите на экран через пробел все количества фантиков, учитывая все позиции, откуда ИВ может пойти.
f = open("2.txt") n = int(f.readline()) a = [int(f.readline()) for i in range(n)] s = [0] * n s[0] = sum(a[:n-2+1]) #+1 чтобы учесть n-2ое число for i in range(1, n): s[i] = s[i - 1] - a[i - 1] + a[(n-2+i) % n] print(*s)
Ошибка.
Попробуйте повторить позже
Дано натуральное число , затем натуральных чисел, записанных в круг. Требуется найти количество пар чисел, чья сумма будет кратна . Парой считаются два элемента, стоящие рядом.
f = open("1.txt") n = int(f.readline()) a = [int(f.readline()) for i in range(n)] ans = 1 * ((a[0] + a[-1]) % 10 == 0) # Учитываем "концы" круга for i in range(n - 1): if (a[i] + a[i + 1]) % 10 == 0: ans += 1 print(ans)
Ошибка.
Попробуйте повторить позже
В городе M расположена кольцевая автодорога длиной в N километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод таким образом, чтобы стоимость доставки мусора была минимальной. Стоимость доставки мусора вычисляется, как вместимость пункта сбора умноженная на расстояние от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора расстояние считается нулевым. Контейнеры нумеруются с 1 до N. Рядом с каким пунктом сбора мусора нужно поставить мусороперерабатывающий завод?
Описание входных данных:
Первое число N — количество контейнеров для мусора. Последующие N чисел — количество килограмм мусора, которое производится на точке.
Описание выходных данных:
Одно число — номер контейнера для мусора рядом с которым стоит расположить перерабатывающий завод.
n = int(file.readline())
a = [int(file.readline()) for i in range(n)]
s = [sum(a[0:n // 2])]
for i in range(1, n):
s.append(s[i - 1] - a[i - 1] + a[(i - 1 + n // 2) % n])
summa = sum(a)
p = []
for i in range(n):
p.append(summa - s[i])
price = 0
for i in range(n // 2):
price += i * a[i]
for i in range(n // 2, n):
price += (n - i) * a[i]
minim = price
min_k = -1
for i in range(1, n):
price -= s[i]
price += p[i]
if price < minim:
minim = price
min_k = i + 1
print(min_k)
Ошибка.
Попробуйте повторить позже
В городе M расположена кольцевая автодорога длиной в N километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги около k-ого пункта сборки мусора поставили мусороперерабатывающий завод. Стоимость доставки мусора вычисляется, как вместимость пункта сбора умноженная на расстояние от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора расстояние считается нулевым. Контейнеры нумеруются с 1 до N. Требуется найти модуль разницы стоимостей сбора всего мусора при перемещении завода с k-ой позиции контейнера на k + 1(при k = N, (k + 1)-ая позиция соответствует 1 позиции контейнера)
Описание входных данных:
Первое число N — количество контейнеров для мусора, второе число k - номер контейнера для мусора рядом с которым стоит перерабатывающий завод. Последующие N чисел — количество килограмм мусора, которое производится на точке.
Описание выходных данных:
Одно число — модуль разницы стоимостей сбора мусора при перемещении завода с k-ой позиции контейнера на k + 1(при k = N, (k + 1)-ая позиция соответствует 1 позиции контейнера)
n = int(file.readline())
k = int(file.readline()) - 1
a = [int(file.readline()) for i in range(n)]
s = [sum(a[0:n // 2])]
for i in range(1, n):
s.append(s[i - 1] - a[i - 1] + a[(i - 1 + n // 2) % n])
summa = sum(a)
p = []
for i in range(n):
p.append(summa - s[i])
# ищем стоимость, если завод стоит на
# k-ой позиции
price = 0
for i in range(1, n):
price += min(i, n - i) * a[(i + k) % n]
# найдем k+1 стоимость
new_price = price - s[k + 1] + p[k + 1]
print(abs(price - new_price))
Ошибка.
Попробуйте повторить позже
Дано количество мусорок, расположенных по кругу, и количество фантиков во всех этих мусорках, требуется найти количество фантиков, которое соберёт Петя за половину круга для всех его начальных позиций. Вывести все эти числа от до ()
n = int(file.readline())
a = [int(file.readline()) for i in range(n)]
s = [0]*n
s[0] = [sum(a[:a[n // 2]])]
for i in range(1, n):
s[i] = s[i - 1] - a[i - 1] + a[(i - 1 + n // 2) % n])
print(*s)