Ошибка.
Попробуйте повторить позже
На кольцевой автодороге с двусторонним движением находится N бензоколонок (не более одной бензоколонки на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Известно количество топлива, которое ежедневно на каждую бензоколонку доставляет отдельный бензовоз. Для перевозки топлива используются бензовозы вместимостью 180 м. Стоимость доставки топлива вычисляется как произведение количества рейсов бензовоза на расстояние от нефтехранилища до бензоколонки. Пробег пустого бензовоза не учитывается. Определите минимальные возможные расходы на доставку топлива до всех бензоколонок, если нефтехранилище расположено на кольцевой автодороге на территории одной из бензоколонок c количеством топлива меньше 300.
Входные данные: Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит два числа: N, K (, ) – соответственно количество бензоколонок на кольцевой автодороге и длина автодороги в километрах. В каждой из следующих N строк находятся два числа: номер километра кольцевой автодороги, на котором расположена бензоколонка, и количество топлива в кубометрах (все числа натуральные, количество топлива на каждой бензоколонке не превышает 1000). Данные указаны в порядке расположения бензоколонок на автодороге.
В ответе укажите два числа: сначала значение искомой величины для файла А, затем – для файла B.
# Файлик A from math import ceil f = open(’5_27A.txt’) N, K = map(int, f.readline().split()) b = 180 m = 300 points = [] for i in f: dist, petrol = map(int, i.split()) # Чтобы рейсов бензовоза хватило, округлять нужно в большую сторону - ceil if dist == K: dist = 0 points.append([dist, petrol]) costs = [] for cur_d, cur_p in points: # Перебираем пункты, где можем поставить нефтехранилище sm = 0 for dist, petrol in points: # Для пункта увеличиваем сумму # Умножаем расстояние от нефтехранилища до пункта на количество рейсов sm += ceil(petrol / b) * min(abs(cur_d - dist), K - abs(cur_d - dist)) if 0 < cur_p < m: costs.append(sm) print(min(costs)) # Файлик B from math import ceil f = open(’5_27B.txt’) N, K = map(int, f.readline().split()) b = 180 m = 300 # Список, в котором индекс - расстояние от нулевой отметки до этого пункта # элементы - количество рейсов к конкретному пункту # Если на какой-то отметке пункта нет, там останется 0, и этот пункт не будет влиять на сумму points = [0] * K for i in f: dist, petrol = map(int, i.split()) # Чтобы рейсов бензовоза хватило, округлять нужно в большую сторону - ceil # Выполняем условие, что K-й километр также является и 0-м if dist == K: dist = 0 points[dist] = petrol points = points * 2 # Изначальная сумма для 0-го пункта sm = 0 for i in range(1, K): sm += ceil(points[i] / b) * min(i, K - i) # Все пункты слева будут удаляться, на их сумму будем увеличивать l = sum([ceil(i / b) for i in points[-(K // 2):]]) # Все пункты справа будут приближаться, их сумму будем вычитать r = sum([ceil(i / b) for i in points[:K // 2]]) costs = [] # Первый пункт добавляем только в случае, если там может стоять завод if 0 < points[0] < m: costs.append(sm) for i in range(1, K): l += ceil(points[i - 1] / b) - ceil(points[-(K // 2) + i - 1] / b) r += ceil(points[(K // 2) + i - 1] / b) - ceil(points[i - 1] / b) sm += l - r # Пункт добавляем только в случае, если в нём может стоять завод if 0 < points[i] < m: costs.append(sm) print(min(costs))
Ошибка.
Попробуйте повторить позже
На кольцевой автодороге с двусторонним движением находится N бензоколонок (не более одной бензоколонки на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Известно количество топлива, которое ежедневно на каждую бензоколонку доставляет отдельный бензовоз. Для перевозки топлива используются бензовозы вместимостью 40 м. Стоимость доставки топлива вычисляется как произведение количества рейсов бензовоза на расстояние от нефтехранилища до бензоколонки. Пробег пустого бензовоза не учитывается. Определите минимальные возможные расходы на доставку топлива до всех бензоколонок, если нефтехранилище расположено на кольцевой автодороге на территории одной из бензоколонок c количеством топлива более 900.
Входные данные: Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит два числа: N, K (, ) – соответственно количество бензоколонок на кольцевой автодороге и длина автодороги в километрах. В каждой из следующих N строк находятся два числа: номер километра кольцевой автодороги, на котором расположена бензоколонка, и количество топлива в кубометрах (все числа натуральные, количество топлива на каждой бензоколонке не превышает 1000). Данные указаны в порядке расположения бензоколонок на автодороге.
В ответе укажите два числа: сначала значение искомой величины для файла А, затем – для файла B.
# Файлик A from math import ceil f = open(’4_27A.txt’) N, K = map(int, f.readline().split()) b = 40 m = 900 points = [] for i in f: dist, petrol = map(int, i.split()) # Чтобы рейсов бензовоза хватило, округлять нужно в большую сторону - ceil if dist == K: dist = 0 points.append([dist, petrol]) costs = [] for cur_d, cur_p in points: # Перебираем пункты, где можем поставить нефтехранилище sm = 0 for dist, petrol in points: # Для пункта увеличиваем сумму # Умножаем расстояние от нефтехранилища до пункта на количество рейсов sm += ceil(petrol / b) * min(abs(cur_d - dist), K - abs(cur_d - dist)) if cur_p > m: costs.append(sm) print(min(costs)) # Файлик B from math import ceil f = open(’4_27B.txt’) N, K = map(int, f.readline().split()) b = 40 m = 900 # Список, в котором индекс - расстояние от нулевой отметки до этого пункта # элементы - количество рейсов к конкретному пункту # Если на какой-то отметке пункта нет, там останется 0, и этот пункт не будет влиять на сумму points = [0] * K for i in f: dist, petrol = map(int, i.split()) # Чтобы рейсов бензовоза хватило, округлять нужно в большую сторону - ceil # Выполняем условие, что K-й километр также является и 0-м if dist == K: dist = 0 points[dist] = petrol points = points * 2 # Изначальная сумма для 0-го пункта sm = 0 for i in range(1, K): sm += ceil(points[i] / b) * min(i, K - i) # Все пункты слева будут удаляться, на их сумму будем увеличивать l = sum([ceil(i / b) for i in points[-(K // 2):]]) # Все пункты справа будут приближаться, их сумму будем вычитать r = sum([ceil(i / b) for i in points[:K // 2]]) costs = [] # Первый пункт добавляем только в случае, если там может стоять завод if points[0] > m: costs.append(sm) for i in range(1, K): l += ceil(points[i - 1] / b) - ceil(points[-(K // 2) + i - 1] / b) r += ceil(points[(K // 2) + i - 1] / b) - ceil(points[i - 1] / b) sm += l - r # Пункт добавляем только в случае, если в нём может стоять завод if points[i] > m: costs.append(sm) print(min(costs))
Ошибка.
Попробуйте повторить позже
На кольцевой автодороге с двусторонним движением находится N бензоколонок (не более одной бензоколонки на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Известно количество топлива, которое ежедневно на каждую бензоколонку доставляет отдельный бензовоз. Для перевозки топлива используются бензовозы вместимостью 235 м. Стоимость доставки топлива вычисляется как произведение количества рейсов бензовоза на расстояние от нефтехранилища до бензоколонки. Пробег пустого бензовоза не учитывается. Определите разницу между минимальными и максимальными возможными расходами на доставку топлива до всех бензоколонок, если нефтехранилище расположено на кольцевой автодороге на территории одной из бензоколонок.
Входные данные: Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит два числа: N, K (, ) – соответственно количество бензоколонок на кольцевой автодороге и длина автодороги в километрах. В каждой из следующих N строк находятся два числа: номер километра кольцевой автодороги, на котором расположена бензоколонка, и количество топлива в кубометрах (все числа натуральные, количество топлива на каждой бензоколонке не превышает 1000). Данные указаны в порядке расположения бензоколонок на автодороге.
В ответе укажите два числа через пробел: сначала значение искомой величины для файла А, затем – для файла B.
# Файлик A from math import ceil f = open(’3_27A.txt’) N, K = map(int, f.readline().split()) b = 235 points = [] for i in f: dist, petrol = map(int, i.split()) # Чтобы рейсов бензовоза хватило, округлять нужно в большую сторону - ceil if dist == K: dist = 0 points.append([dist, ceil(petrol / b)]) costs = [] for cur_d, cur_p in points: # Перебираем пункты, где можем поставить нефтехранилище sm = 0 for dist, petrol in points: # Для пункта увеличиваем сумму # Умножаем расстояние от нефтехранилища до пункта на количество рейсов sm += petrol * min(abs(cur_d - dist), K - abs(cur_d - dist)) costs.append(sm) print(max(costs) - min(costs)) # Файлик B from math import ceil f = open(’3_27B.txt’) N, K = map(int, f.readline().split()) b = 235 # Список, в котором индекс - расстояние от нулевой отметки до этого пункта # элементы - количество рейсов к конкретному пункту # Если на какой-то отметке пункта нет, там останется 0, и этот пункт не будет влиять на сумму points = [0] * K for i in f: dist, petrol = map(int, i.split()) # Чтобы рейсов бензовоза хватило, округлять нужно в большую сторону - ceil petrol = ceil(petrol / b) # Выполняем условие, что K-й километр также является и 0-м if dist == K: dist = 0 points[dist] = petrol points = points * 2 # Изначальная сумма для 0-го пункта sm = 0 for i in range(1, K): sm += points[i] * min(i, K - i) # Все пункты слева будут удаляться, на их сумму будем увеличивать l = sum(points[-(K // 2):]) # Все пункты справа будут приближаться, их сумму будем вычитать r = sum(points[:K // 2]) costs = [] # Первый пункт добавляем только в случае, если там может стоять завод if points[0] > 0: costs.append(sm) for i in range(1, K): l += points[i - 1] - points[-(K // 2) + i - 1] r += points[(K // 2) + i - 1] - points[i - 1] sm += l - r # Пункт добавляем только в случае, если в нём может стоять завод if points[i] > 0: costs.append(sm) print(max(costs) - min(costs))
Ошибка.
Попробуйте повторить позже
На кольцевой автодороге с двусторонним движением находится N бензоколонок (не более одной бензоколонки на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Известно количество топлива, которое ежедневно на каждую бензоколонку доставляет отдельный бензовоз. Для перевозки топлива используются бензовозы вместимостью 64 м. Стоимость доставки топлива вычисляется как произведение количества рейсов бензовоза на расстояние от нефтехранилища до бензоколонки. Пробег пустого бензовоза не учитывается. Определите максимальные возможные расходы на доставку топлива до всех бензоколонок, если нефтехранилище расположено на кольцевой автодороге на территории одной из бензоколонок.
Входные данные: Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит два числа: N, K (, ) – соответственно количество бензоколонок на кольцевой автодороге и длина автодороги в километрах. В каждой из следующих N строк находятся два числа: номер километра кольцевой автодороги, на котором расположена бензоколонка, и количество топлива в кубометрах (все числа натуральные, количество топлива на каждой бензоколонке не превышает 1000). Данные указаны в порядке расположения бензоколонок на автодороге.
В ответе укажите два числа через пробел: сначала значение искомой величины для файла А, затем – для файла B.
# Файлик A from math import ceil f = open(’2_27A.txt’) N, K = map(int, f.readline().split()) b = 64 points = [] for i in f: dist, petrol = map(int, i.split()) # Чтобы рейсов бензовоза хватило, округлять нужно в большую сторону - ceil if dist == K: dist = 0 points.append([dist, ceil(petrol / b)]) costs = [] for cur_d, cur_p in points: # Перебираем пункты, где можем поставить нефтехранилище sm = 0 for dist, petrol in points: # Для пункта увеличиваем сумму # Умножаем расстояние от нефтехранилища до пункта на количество рейсов sm += petrol * min(abs(cur_d - dist), K - abs(cur_d - dist)) costs.append(sm) print(max(costs)) # Файлик B from math import ceil f = open(’2_27B.txt’) N, K = map(int, f.readline().split()) b = 64 # Список, в котором индекс - расстояние от нулевой отметки до этого пункта # элементы - количество рейсов к конкретному пункту # Если на какой-то отметке пункта нет, там останется 0, и этот пункт не будет влиять на сумму points = [0] * K for i in f: dist, petrol = map(int, i.split()) # Чтобы рейсов бензовоза хватило, округлять нужно в большую сторону - ceil petrol = ceil(petrol / b) # Выполняем условие, что K-й километр также является и 0-м if dist == K: dist = 0 points[dist] = petrol points = points * 2 # Изначальная сумма для 0-го пункта sm = 0 for i in range(1, K): sm += points[i] * min(i, K - i) # Все пункты слева будут удаляться, на их сумму будем увеличивать l = sum(points[-(K // 2):]) # Все пункты справа будут приближаться, их сумму будем вычитать r = sum(points[:K // 2]) costs = [] # Первый пункт добавляем только в случае, если там может стоять завод if points[0] > 0: costs.append(sm) for i in range(1, K): l += points[i - 1] - points[-(K // 2) + i - 1] r += points[(K // 2) + i - 1] - points[i - 1] sm += l - r # Пункт добавляем только в случае, если в нём может стоять завод if points[i] > 0: costs.append(sm) print(max(costs))
Ошибка.
Попробуйте повторить позже
На кольцевой автодороге с двусторонним движением находится N бензоколонок (не более одной бензоколонки на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Известно количество топлива, которое ежедневно на каждую бензоколонку доставляет отдельный бензовоз. Для перевозки топлива используются бензовозы вместимостью 25 м. Стоимость доставки топлива вычисляется как произведение количества рейсов бензовоза на расстояние от нефтехранилища до бензоколонки. Пробег пустого бензовоза не учитывается. Определите минимальные расходы на доставку топлива до всех бензоколонок, если нефтехранилище расположено на кольцевой автодороге на территории одной из бензоколонок.
Входные данные: Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит два числа: N, K (, ) – соответственно количество бензоколонок на кольцевой автодороге и длина автодороги в километрах. В каждой из следующих N строк находятся два числа: номер километра кольцевой автодороги, на котором расположена бензоколонка, и количество топлива в кубометрах (все числа натуральные, количество топлива на каждой бензоколонке не превышает 1000). Данные указаны в порядке расположения бензоколонок на автодороге.
В ответе укажите два числа: сначала значение искомой величины для файла А, затем – для файла B.
# Файлик A from math import ceil f = open(’1_27A.txt’) N, K = map(int, f.readline().split()) b = 25 points = [] for i in f: dist, petrol = map(int, i.split()) # Чтобы рейсов бензовоза хватило, округлять нужно в большую сторону - ceil if dist == K: dist = 0 points.append([dist, ceil(petrol / b)]) costs = [] for cur_d, cur_p in points: # Перебираем пункты, где можем поставить нефтехранилище sm = 0 for dist, petrol in points: # Для пункта увеличиваем сумму # Умножаем расстояние от нефтехранилища до пункта на количество рейсов sm += petrol * min(abs(cur_d - dist), K - abs(cur_d - dist)) costs.append(sm) print(min(costs)) # Файлик B from math import ceil f = open(’1_27B.txt’) N, K = map(int, f.readline().split()) b = 25 # Список, в котором индекс - расстояние от нулевой отметки до этого пункта # элементы - количество рейсов к конкретному пункту # Если на какой-то отметке пункта нет, там останется 0, и этот пункт не будет влиять на сумму points = [0] * K for i in f: dist, petrol = map(int, i.split()) # Чтобы рейсов бензовоза хватило, округлять нужно в большую сторону - ceil petrol = ceil(petrol / b) # Выполняем условие, что K-й километр также является и 0-м if dist == K: dist = 0 points[dist] = petrol points = points * 2 # Изначальная сумма для 0-го пункта sm = 0 for i in range(1, K): sm += points[i] * min(i, K - i) # Все пункты слева будут удаляться, на их сумму будем увеличивать l = sum(points[-(K // 2):]) # Все пункты справа будут приближаться, их сумму будем вычитать r = sum(points[:K // 2]) costs = [] # Первый пункт добавляем только в случае, если там может стоять завод if points[0] > 0: costs.append(sm) for i in range(1, K): l += points[i - 1] - points[-(K // 2) + i - 1] r += points[(K // 2) + i - 1] - points[i - 1] sm += l - r # Пункт добавляем только в случае, если в нём может стоять завод if points[i] > 0: costs.append(sm) print(min(costs))
Ошибка.
Попробуйте повторить позже
В городе M расположена кольцевая автодорога длиной N километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод.
Мусор до завода доставляет автомобиль, но в него вмещается не более K килограмм мусора за раз.
Стоимость доставки мусора вычисляется как произведение количества необходимых заездов автомобиля до точки и расстояния от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора, расстояние считается нулевым.
Требуется определить общую сумму цифр всех возможных общих стоимостей доставок мусора со всех точек.
Входные данные:
Первое число N — количество контейнеров для мусора. Второе число K - вместимость автомобиля. Последующие N чисел — количество килограмм мусора, которое производится на точке.
В ответе укажите два числа через пробел: сначала искомое значение для файла А, затем для файла B.
# Файлик А from math import ceil f = open(’27A_07_5.txt’) N = int(f.readline()) K = int(f.readline()) a = [ceil(int(i) / K) for i in f] * 2 summa = 0 for i in range(0, N): sm = 0 for j in range(1 + i, N + i): d = abs(j - i) sm += a[j] * min(d, N - d) summa += sum(map(int, str(sm))) print(summa) # Файлик B from math import ceil f = open(’27B_07_5.txt’) N = int(f.readline()) K = int(f.readline()) a = [ceil(int(i) / K) for i in f] * 2 sm = 0 for i in range(1, N): sm += a[i] * min(i, N - i) l = sum(a[-(N // 2):]) r = sum(a[:N // 2]) sums = [sm] for i in range(1, N): l += a[i - 1] - a[-(N // 2) + i - 1] r += a[(N // 2) + i - 1] - a[i - 1] sm += l - r sums.append(sm) print(sum([sum(map(int, str(i))) for i in sums]))
Ошибка.
Попробуйте повторить позже
В городе M расположена кольцевая автодорога длиной N километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод.
Мусор до завода доставляет автомобиль, но в него вмещается не более K килограмм мусора за раз.
Стоимость доставки мусора вычисляется как произведение количества необходимых заездов автомобиля до точки и расстояния от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора, расстояние считается нулевым.
Требуется определить разницу между максимальной и минимальной возможными общими стоимостями доставки мусора со всех точек.
Входные данные:
Первое число N — количество контейнеров для мусора. Второе число K - вместимость автомобиля. Последующие N чисел — количество килограмм мусора, которое производится на точке.
В ответе укажите два числа через пробел: сначала искомое значение для файла А, затем для файла B.
# Файлик А from math import ceil f = open(’27A_07_4.txt’) N = int(f.readline()) K = int(f.readline()) a = [ceil(int(i) / K) for i in f] * 2 mn = 10 ** 10 mx = -1 ind = -1 for i in range(0, N): sm = 0 for j in range(1 + i, N + i): d = abs(j - i) sm += a[j] * min(d, N - d) mn = min(mn, sm) mx = max(mx, sm) print(mx - mn) # Файлик B from math import ceil f = open(’27B_07_4.txt’) N = int(f.readline()) K = int(f.readline()) a = [ceil(int(i) / K) for i in f] * 2 sm = 0 for i in range(1, N): sm += a[i] * min(i, N - i) l = sum(a[-(N // 2):]) r = sum(a[:N // 2]) sums = [sm] for i in range(1, N): l += a[i - 1] - a[-(N // 2) + i - 1] r += a[(N // 2) + i - 1] - a[i - 1] sm += l - r sums.append(sm) print(max(sums) - min(sums))
Ошибка.
Попробуйте повторить позже
На каждом километре односторонней кольцевой автодороги расположены дачные участки. Администрация дачного поселения планирует построить теплицы и выращивать в них сельсхоз. продукцию на одном из участков. При этом рассаду для посева разрешается перевозить не менее чем на K километров, и не более чем на M километров. Известен необходимый суточный объём рассады, которую необходимо доставить грузовиком для определённого дачного участка. Гарантируется, что объём рассады не превышает грузоподъёмность грузовика. Стоимость доставки равна сумме расстояния от фабрики до участка и объёма необходимой рассады. Теплицы расположили на таком участке, что при этом общая стоимость доставок удобрений на все участки, находящиеся на удалении от K до M километров, максимальна.
Определите максимальную общую стоимость доставки удобрений из теплиц.
Входные данные
Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит три числа, разделённые пробелами: N – количество дачных участков, K и M – минимальное и максимальное расстояние для перевозки . В каждой из следующих N строк находится объём рассады (не превышает 5000). Числа указаны в порядке расположения домов на кольцевой автодороге, начиная с первого километра.
В ответе укажите два числа: сначала значение искомой величины для файла А, затем – для файла B.
# Файлик А f = open(’27A_07_3.txt’) N, K, M = map(int, f.readline().split()) a = [int(i) for i in f] * 2 mx = -1 for i in range(0, N): sm = 0 for j in range(i + K, i + M + 1): sm += (j - i) + a[j] mx = max(mx, sm) print(mx) # Файлик B f = open(’27B_07_3.txt’) N, K, M = map(int, f.readline().split()) a = [int(i) for i in f] * 2 sm = 0 for i in range(K, M + 1): sm += i + a[i] sums = [sm] for i in range(1, N): sm += a[i + M] - a[i + K - 1] sums.append(sm) print(max(sums))
Ошибка.
Попробуйте повторить позже
В городе M расположена кольцевая автодорога длиной N километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод таким образом, чтобы общая стоимость доставки мусора была минимальной.
Мусор до завода доставляет автомобиль, но в него вмещается не более K килограмм мусора за раз.
Стоимость доставки мусора вычисляется как произведение количества необходимых заездов автомобиля до точки и расстояния от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора, расстояние считается нулевым.
Нумерация контейнеров происходит от 1 до N. Требуется определить, рядом с каким пунктом сбора мусора нужно поставить мусороперерабатывающий завод.
Входные данные:
Первое число N — количество контейнеров для мусора. Второе число K - вместимость автомобиля. Последующие N чисел — количество килограмм мусора, которое производится на точке.
Выходных данные:
Одно число – номер контейнера для мусора рядом с которым стоит расположить перерабатывающий завод.
В ответе укажите два числа через пробел: сначала искомое значение для файла А, затем для файла B.
# Файлик А from math import ceil f = open(’27A_07_2.txt’) N = int(f.readline()) K = int(f.readline()) a = [ceil(int(i) / K) for i in f] * 2 mn = 10 ** 10 ind = -1 for i in range(0, N): sm = 0 for j in range(1 + i, N + i): d = abs(j - i) sm += a[j] * min(d, N - d) if sm < mn: ind = i + 1 mn = sm print(ind) # Файлик B from math import ceil f = open(’27B_07_2.txt’) N = int(f.readline()) K = int(f.readline()) a = [ceil(int(i) / K) for i in f] * 2 sm = 0 for i in range(1, N): sm += a[i] * min(i, N - i) l = sum(a[-(N // 2):]) r = sum(a[:N // 2]) sums = [sm] for i in range(1, N): l += a[i - 1] - a[-(N // 2) + i - 1] r += a[(N // 2) + i - 1] - a[i - 1] sm += l - r sums.append(sm) print(sums.index(min(sums)) + 1)
Ошибка.
Попробуйте повторить позже
В городе M расположена кольцевая автодорога длиной N километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод таким образом, чтобы общая стоимость доставки мусора была минимальной.
Стоимость доставки мусора вычисляется как произведение вместимости пункта сбора и расстояния от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора, расстояние считается нулевым.
Требуется определить, какая будет минимальная общая стоимость доставки мусора.
Входные данные:
Первое число N — количество контейнеров для мусора. Последующие N чисел — количество килограмм мусора, которое производится на точке.
Выходных данные:
Одно число – минимальная общая стоимость доставки мусора со всех точек.
В ответе укажите два числа через пробел: сначала искомое значение для файла А, затем для файла B.
# Файлик А f = open(’27A_07_1.txt’) N = int(f.readline()) a = [int(i) for i in f] * 2 mn = 10 ** 10 for i in range(0, N): sm = 0 for j in range(1 + i, N + i): d = abs(j - i) sm += a[j] * min(d, N - d) mn = min(sm, mn) print(mn) # Файлик B f = open(’27B_07_1.txt’) N = int(f.readline()) a = [int(i) for i in f] * 2 sm = 0 for i in range(1, N): sm += a[i] * min(i, N - i) l = sum(a[-(N // 2):]) r = sum(a[:N // 2]) sums = [sm] for i in range(1, N): l += a[i - 1] - a[-(N // 2) + i - 1] r += a[(N // 2) + i - 1] - a[i - 1] sm += l - r sums.append(sm) print(min(sums))
Ошибка.
Попробуйте повторить позже
На каждом километре односторонней кольцевой автодороги расположены дачные участки. Администрация дачного поселения планирует построить теплицы и выращивать в них сельсхоз. продукцию на одном из участков. При этом рассаду для посева разрешается перевозить не менее чем на K километров, и не более чем на M километров. Известен необходимый суточный объём рассады, которую необходимо доставить грузовиком для определённого дачного участка. Гарантируется, что объём рассады не превышает грузоподъёмность грузовика. Стоимость доставки равна сумме расстояния от фабрики до участка и объёма необходимой рассады. Теплицы расположили на таком участке, что при этом общая стоимость доставок удобрений на все участки, находящиеся на удалении от K до M километров, минимальна.
Определите минимальную общую стоимость доставки удобрений из теплиц.
Входные данные
Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит три числа, разделённые пробелами: N – количество дачных участков, K и M – минимальное и максимальное расстояние для перевозки . В каждой из следующих N строк находится объём рассады (не превышает 5000). Числа указаны в порядке расположения домов на кольцевой автодороге, начиная с первого километра.
В ответе укажите два числа: сначала значение искомой величины для файла А, затем – для файла B.
#Решение А f = open(’27-10A.txt’) n,k,m = map(int,f.readline().split()) a = [int(i) for i in f]*2 mn = 10**20 for i in range(n): s = 0 for j in range(2 * n): if k <= (j - i) <= m: s += (j - i) + a[j] mn = min(mn,s) print(mn) #Решение B f = open(’27-10B.txt’) n,k,m = map(int,f.readline().split()) a = [int(i) for i in f]*2 r = sum(j for j in range(k,m+1)) s = mn = sum(a[k:m+1]) + r for i in range(1,n): s = s - a[i+k-1] + a[i+m] mn = min(mn,s) print(mn)
Ошибка.
Попробуйте повторить позже
Группа исследователей отправляется в экспедицию на необитаемый остров, имеющий форму окружности. У них есть ограниченное количество ресурсов, которые они могут нести с собой. Остров состоит из различных локаций, где возможно обнаружить ценные артефакты и природные ресурсы.
Исследователи могут начать свой путь с любой локации, сумма цифр индекса которого кратна 25 и двигаться по острову, собирая ресурсы. Действуют они по следующим правилам: в первой локации собирают треть всех ресурсов (при этом округление идет в большую сторону) и направляются к ближайшей следующей локации строго по часовой стрелке. Если там такая же четность ресурсов, как и в предыдущей локации, то исследователи снова берут треть ресурсов из текущей локации и идут к следующей локации. Если же четность ресурсов локации отличается, то исследователи берут четверть ресурсов из текущей локации и идут к следующей локации. Необходимо узнать с каким максимально возможным количеством ресурсов исследователи могут вернуться к той локации, с которой они начали.
Входные данные.
Входные данные
Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит одно число N количество локаций, а в последующих строках содержится количество ресурсов в каждой локации.
В ответе укажите два числа: сначала значение искомой величины для файла А, затем – для файла В.
import math def sum_digit(n): sum = 0 while n != 0: sum += n % 10 n //= 10 return sum f = open(’27.txt’) n = int(f.readline()) a = [int(i) for i in f] dopusk = [x for x in range(n) if sum_digit(x) % 25 == 0] mx = 0 for start in dopusk: temp = math.ceil(a[start] / 3) for i in range(start+1,start + n): if a[i % n] % 2 == a[(i-1) % n] % 2: temp += math.ceil(a[i%n] / 3) else: temp += math.ceil(a[i % n] / 4) mx = max(mx,temp) print(mx)
Ошибка.
Попробуйте повторить позже
В городе M расположена кольцевая автодорога длиной в N километров с двусторонним движением. На каждом пятом километре установлены контейнеры для мусора. Нулевой километр и N-й километр автодороги находятся в одной точке. Известно количество мусора, которое накапливается ежедневно в каждом из контейнеров. Из каждого пункта мусор вывозит отдельный мусоровоз. Стоимость доставки мусора вычисляется как удвоенное произведение количества мусора на расстояние от пункта до центра переработки. Центр переработки отходов открыли в одном из пунктов сбора мусора таким образом, чтобы общая стоимость доставки мусора из всех пунктов в этот центр была минимальной.
Определите минимальные расходы на доставку мусора в центр переработки отходов.
Описание входных данных:
Первое число N — количество контейнеров для мусора. Последующие N чисел — количество килограмм мусора, которое производится на точке.
Описание выходных данных:
Одно число — минимальные расходы на доставку мусора в центр переработки отходов.
В ответе укажите два числа: сначала значение искомой величины для файла А, затем – для файла В.
f = open(’27B.txt’) n = int(f.readline()) a = [int(f.readline()) for i in range(n)]*5 s = [0] * n sm, right, left = 0, 0, 0 for i in range(1, n // 2): sm += 10 * (a[i] * i + a[n - i] * i) right += a[i] left += a[n - i] sm += a[n // 2] * n * 5 s[0] = sm for i in range(1, n): s[i] = s[i - 1] + 10*(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))
Ошибка.
Попробуйте повторить позже
Группа исследователей отправляется в экспедицию на необитаемый остров, имеющий форму окружности. У них есть ограниченное количество ресурсов, которые они могут нести с собой. Остров состоит из различных локаций, где возможно обнаружить ценные артефакты и природные ресурсы.
Исследователи могут начать свой путь с любой локации, у которого индекс меньше или равен 200, собирая ресурсы. Действуют они по следующим правилам: в первой локации собирают все ресурсы и направляются к ближайшей следующей локации строго по часовой стрелке. При достижении новой локации они сравнивают количество ресурсов в этой локации с количеством ресурсов, которые у них есть. Если количество ресурсов в локации хотя бы в четыре раза больше, чем у них, то они оставляют имеющиеся у них ресурсы в этой локации и забирают те, которые нашли и идут дальше. Если же количество ресурсов в локации в четыре или более раз меньше, чем у них, то исследователи выкидывают все свои ресурсы и начинают с нуля. Цель исследователей – узнать, с каким максимально возможным количеством ресурсов они могут вернуться к базовой локации, с которой они начали свою экспедицию.
Входные данные.
Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит одно число N количество локаций, а в последующих строках содержится количество ресурсов в каждой локации.
В ответе укажите два числа через пробел: сначала значение искомой величины для файла А, затем – для файла В.
f = open(’27_7B.txt’) n = int(f.readline()) a = [int(i) for i in f] mx = 0 for start in range(200): temp = a[start] for i in range(start+1,start + n): if a[i % n] >= temp * 4: temp = a[i % n] elif a[i % n] * 4 <= temp: temp = 0 mx = max(mx,temp) print(mx)
Ошибка.
Попробуйте повторить позже
В клининговой компании есть N пунктов приёма собранного мусора после уборки. Все пункты расположены вдоль автомагистрали и имеют номера, соответствующие расстоянию от нулевой отметки до конкретного пункта. Известно количество мусора, которое ежедневно принимают в каждом из пунктов. Мусор перевозят в специальных транспортировочных контейнерах вместимостью V . Каждый транспортировочный контейнер упаковывается в пункте приёма и вскрывается только в пункте сбора мусора. Компания планирует открыть пункт переработки мусора в одном из пунктов. Стоимость перевозки мусора равна произведению расстояния от пункта до лаборатории на количество контейнеров с мусором в квадрате. Общая стоимость перевозки за день равна сумме стоимостей перевозок из каждого пункта в пункт переработки.
Пункт переработки расположили в одном из пунктов приёма мусора таким образом, что общая стоимость доставки мусора из всех пунктов минимальна. Определите минимальную общую стоимость доставки мусора из всех пунктов приёма в пункт переработки.
Входные данные:
Даны два входных файла – A и B, каждый из которых содержит в первой строке число N – количество пунктов приёма мусора, и число V – вместимость транспортировочного контейнера. Каждая из следующих N строк содержит два натуральных числа: номер пункта и количество мусора (не превышающее 7000). Пункты перечислены в произвольном порядке.
В ответе укажите два числа через пробел: сначала искомое значение для файла А, затем для файла B.
f = open(’27B.txt’) n, v = map(int, f.readline().split()) a = [list(map(int, f.readline().split())) for _ in range(n)] a = [[s, k // v + (1 if k % v != 0 else 0)] for s, k in a] a.sort() bags = [a[0][1]] for i in range(1, n): bags.append(bags[-1] + a[i][1]) total_cost = sum(abs(a[0][0] - a[j][0]) * a[j][1] ** 2 for j in range(n)) min_sum = total_cost for i in range(1, n): diff = a[i][0] - a[i-1][0] total_cost += diff * bags[i-1] - diff * (bags[n-1] - bags[i-1]) min_sum = min(min_sum, total_cost) print(min_sum)
Ошибка.
Попробуйте повторить позже
В городе M расположена кольцевая автодорога длиной N километров с движением в обе стороны. На каждом километре автодороги расположены пункты приема мусора определенной вместимости. В пределах кольцевой дороги в одном из пунктов сборки мусора собираются поставить мусороперерабатывающий завод таким образом, чтобы максимизировать стоимость доставки мусора.
Стоимость доставки мусора вычисляется как произведение вместимости пункта сбора и расстояния от пункта сбора мусора до мусороперерабатывающего завода. Если мусороперерабатывающий завод находится рядом с пунктом сбора, расстояние считается нулевым.
Нумерация контейнеров происходит от 1 до N. Требуется определить, рядом с каким пунктом сбора мусора нужно поставить мусороперерабатывающий завод.
Входные данные:
Первое число N — количество контейнеров для мусора. Последующие N чисел — количество килограмм мусора, которое производится на точке.
Выходных данные:
Одно число – номер контейнера для мусора рядом с которым стоит расположить перерабатывающий завод.
В ответе укажите два числа через пробел: сначала искомое значение для файла А, затем для файла B.
f = open(’27_5B__3hjkh.txt’) n = int(f.readline()) a = [int(i) for i in f] sm = sum(a) a = a * 2 s = 0 ml = s punk = 0 for i in range(n): s += min(i,n-i) * a[i] cheaper = sum(a[1:n//2+1]) for i in range(1,n): s = s - cheaper + (sm-cheaper) if s > ml: ml = s punk = i + 1 cheaper = cheaper - a[i] + a[n//2+i] print(ml, punk)
Ошибка.
Попробуйте повторить позже
В городе, на одной из кольцевых автодорог с двусторонним движением, расположены N многоэтажных жилых зданий для детских садов и школ. Длина кольцевой автодороги равна К км, при этом нулевой километр и K-й километр находятся в одной точке.
Дети ежедневно получают пончики, которые упакованы в доставочные пакеты, каждый из которых вмещает не более 300 штук. Каждый доставочный пакет используется для доставки пончиков только в одно здание, и в каждое здание может быть доставлен не более одного пакета с неполной загрузкой.
Склад для пончиков открыли в одном из зданий таким образом, чтобы количество доставляемых пакетов с пончиками было максимальным. Пончики в те здания, которые находятся на расстоянии более M километров от склада, не доставляются. Требуется определить необходимое количество доставочных пакетов на складе.
Входные данные:
Даны два входных файла: файл A и файл B, каждый из которых в первой строке содержит числа N, K и M – количество зданий, длина кольцевой автодороги в километрах и максимальное расстояние, на которое можно осуществлять доставку пончиков. В каждой из следующих N строк находятся два числа: номер километра кольцевой автодороги, на котором расположено здание, и количество пончиков(все числа натуральные, количество не превышает 2000). Данные указаны в порядке расположения зданий на автодороге.
В ответе укажите два числа через пробел: сначала искомое значение для файла А, затем для файла B.
f = open(’27B_4.txt’) n,k,m = map(int,f.readline().split()) a = [] kms = set() for i in range(n): km,donut = map(int,f.readline().split()) km = km % k count_packet = donut // 300 if donut % 300 == 0 else donut // 300 + 1 a.append([km,count_packet]) b = [0]*k for i in range(n): km,count_packet = a[i] b[km] = count_packet b = b * 2 mx = s = sum(b[:2*m+1]) for i in range(m+1,k+m): s = s - b[i-m-1] + b[i+m] if b[i] > 0: mx = max(mx,s) print(mx)
Ошибка.
Попробуйте повторить позже
На кольцевой автодороге с двусторонним движением находится N многоэтажных жилых домов (не более одного дома на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Жители домов ежедневно заказывают доставку продуктов. Каждый магазин упаковывает продукты в пакеты, каждый из которых вмещает не более 158 кг. Каждый пакет используется для доставки почты только в один жилой дом, при этом для каждого дома берется минимально возможное количество пакетов. Известно, что курьеру хватает топлива не более чем на M км, заправка для обратного пути до магазина не учитывается. Магазин открыли в одном из домов таким образом, чтобы количество доставляемых пакетов с продуктами было максимальным.
Определите необходимое количество доставочных пакетов в этом магазине.
Входные данные
Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит три числа N, K и M число N -– количество жилых домов, длина кольцевой дороги в километрах и максимальное расстояние, на которое курьер может осуществлять доставку. В каждой из следующих N строк находится два числа: номер километра кольцевой автодороги, на котором расположен жилой дом, и вес пакета (все числа натуральные, вес продуктов для каждого дома не превышает 500 кг). Числа указаны в порядке расположения домов на автодороге.
В ответе укажите два числа через пробел: сначала значение искомой величины для файла А, затем – для файла В.
f = open(’273B.txt’) n,k,m = map(int,f.readline().split()) a = [] for i in f: km,weight = map(int,i.split()) count_packet = weight//158 if weight % 158 == 0 else weight // 158 + 1 a.append([km%k,count_packet]) b = [0]*k for i in range(n): km,count_packet = a[i] b[km] = count_packet b = b*2 mx = s = sum(b[:2*m+1]) for i in range(m+1,k+m): s = s - b[i-m-1]+b[i+m] if b[i] > 0: mx = max(mx,s) print(mx)
Ошибка.
Попробуйте повторить позже
Почтальон Петя работает в маленьком городке, в котором все дома расположены вдоль одной круговой дороги. Петя может начать свой маршрут работы с любого дома, индекс которого кратен 150. Он собирает посылки из первого дома и направляется к следующему дому по часовой стрелке. Действует он по следующим правилам: в первом доме Петя забирает пятую часть всех посылок (если число не делится нацело на 5, то округляем в меньшую сторону) и направляется к ближайшему следующему дому по часовой стрелке. Если остаток от деления количества посылок на 5 такой же, как и в предыдущем доме, то Петя берет пятую часть посылок и идет к следующему дому. Если же остаток от деления количества посылок на 5 отличается, то Петя не берет посылки из текущего дома и идет к следующему. Необходимо узнать с каким максимально возможным количеством писем Петя может вернутся к тому дому, с которого он начал.
Входные данные.
Входные данные
Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит одно число N количество домов, а в последующих строках содержится количество посылок в каждом из домов.
В ответе укажите два числа через пробел: сначала значение искомой величины для файла А, затем – для файла В.
f = open(’27B.txt’) n = int(f.readline()) a = [int(i) for i in f] mx = 0 for start in range(0,n,150): temp = a[start] // 5 for i in range(start+1,start + n - 1): if a[i % n] % 5 == a[(i-1) % n] % 5: temp += a[i % n] // 5 if temp > mx: mx = temp print(mx)
Ошибка.
Попробуйте повторить позже
Почтальон Петя работает в маленьком городке, в котором все дома расположены вдоль одной круговой дороги. Петя может начать свой маршрут работы с любого дома, индекс которого кратен 100. Он собирает посылки из первого дома и направляется к следующему дому по часовой стрелке. Прибыв в следующий дом, Петя сравнивает количество посылок в этом доме с количеством посылок, которые он несет с собой. Если количество посылок в доме равно или больше, чем у него, то Петя оставляет половину своих посылок в этом доме (если число получается нецелым, то округляется в меньшую сторону), берёт то количество посылок, что лежало в доме изначально и идет дальше. Если же количество посылок в доме меньше, чем у него, то Петя выкидывает все свои посылки и берет половину посылок из текущего дома (если число получается нецелым, то округляется в меньшую сторону). Цель Пети – узнать, с каким максимально возможным количеством посылок он может вернуться к дому, с которого он начал свой маршрут.
Входные данные.
Входные данные
Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит одно число N количество домов, а в последующих строках содержится количество посылок в каждом из домов.
В ответе укажите два числа через пробел: сначала значение искомой величины для файла А, затем – для файла В.
f = open(’27_1B.txt’) n = int(f.readline()) a = [int(i) for i in f] mx = 0 for start in range(0,n,100): temp = a[start] for i in range(start+1,start + n): if a[i % n] >= temp: temp = temp // 2 + (temp % 2) + a[i % n] else: temp = a[i % n] // 2 if temp >= mx: mx = temp print(mx)