Тема 27. Программирование
27.02 Мусорки, кольцевая дорога
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела программирование
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#88418

На кольцевой автодороге с двусторонним движением находится N бензоколонок (не более одной бензоколонки на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Известно количество топлива, которое ежедневно на каждую бензоколонку доставляет отдельный бензовоз. Для перевозки топлива используются бензовозы вместимостью 180 м3  . Стоимость доставки топлива вычисляется как произведение количества рейсов бензовоза на расстояние от нефтехранилища до бензоколонки. Пробег пустого бензовоза не учитывается. Определите минимальные возможные расходы на доставку топлива до всех бензоколонок, если нефтехранилище расположено на кольцевой автодороге на территории одной из бензоколонок c количеством топлива меньше 300.

Входные данные: Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит два числа: N, K (1 ≤ N ≤ 10000 000  , 1 ≤ K ≤ 10000000  ) – соответственно количество бензоколонок на кольцевой автодороге и длина автодороги в километрах. В каждой из следующих 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))

Ответ: 32293 1541591932779

Ошибка.
Попробуйте повторить позже

Задача 2#88417

На кольцевой автодороге с двусторонним движением находится N бензоколонок (не более одной бензоколонки на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Известно количество топлива, которое ежедневно на каждую бензоколонку доставляет отдельный бензовоз. Для перевозки топлива используются бензовозы вместимостью 40 м3  . Стоимость доставки топлива вычисляется как произведение количества рейсов бензовоза на расстояние от нефтехранилища до бензоколонки. Пробег пустого бензовоза не учитывается. Определите минимальные возможные расходы на доставку топлива до всех бензоколонок, если нефтехранилище расположено на кольцевой автодороге на территории одной из бензоколонок c количеством топлива более 900.

Входные данные: Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит два числа: N, K (1 ≤ N ≤ 10000 000  , 1 ≤ K ≤ 10000000  ) – соответственно количество бензоколонок на кольцевой автодороге и длина автодороги в километрах. В каждой из следующих 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))

Ответ: 90063 8222309155254

Ошибка.
Попробуйте повторить позже

Задача 3#88416

На кольцевой автодороге с двусторонним движением находится N бензоколонок (не более одной бензоколонки на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Известно количество топлива, которое ежедневно на каждую бензоколонку доставляет отдельный бензовоз. Для перевозки топлива используются бензовозы вместимостью 235 м3  . Стоимость доставки топлива вычисляется как произведение количества рейсов бензовоза на расстояние от нефтехранилища до бензоколонки. Пробег пустого бензовоза не учитывается. Определите разницу между минимальными и максимальными возможными расходами на доставку топлива до всех бензоколонок, если нефтехранилище расположено на кольцевой автодороге на территории одной из бензоколонок.

Входные данные: Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит два числа: N, K (1 ≤ N ≤ 10000 000  , 1 ≤ K ≤ 10000000  ) – соответственно количество бензоколонок на кольцевой автодороге и длина автодороги в километрах. В каждой из следующих 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))

Ответ: 9153 5431509579

Ошибка.
Попробуйте повторить позже

Задача 4#88415

На кольцевой автодороге с двусторонним движением находится N бензоколонок (не более одной бензоколонки на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Известно количество топлива, которое ежедневно на каждую бензоколонку доставляет отдельный бензовоз. Для перевозки топлива используются бензовозы вместимостью 64 м3  . Стоимость доставки топлива вычисляется как произведение количества рейсов бензовоза на расстояние от нефтехранилища до бензоколонки. Пробег пустого бензовоза не учитывается. Определите максимальные возможные расходы на доставку топлива до всех бензоколонок, если нефтехранилище расположено на кольцевой автодороге на территории одной из бензоколонок.

Входные данные: Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит два числа: N, K (1 ≤ N ≤ 10000 000  , 1 ≤ K ≤ 10000000  ) – соответственно количество бензоколонок на кольцевой автодороге и длина автодороги в километрах. В каждой из следующих 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))

Ответ: 94536 7662047669831

Ошибка.
Попробуйте повторить позже

Задача 5#88414

На кольцевой автодороге с двусторонним движением находится N бензоколонок (не более одной бензоколонки на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Известно количество топлива, которое ежедневно на каждую бензоколонку доставляет отдельный бензовоз. Для перевозки топлива используются бензовозы вместимостью 25 м3  . Стоимость доставки топлива вычисляется как произведение количества рейсов бензовоза на расстояние от нефтехранилища до бензоколонки. Пробег пустого бензовоза не учитывается. Определите минимальные расходы на доставку топлива до всех бензоколонок, если нефтехранилище расположено на кольцевой автодороге на территории одной из бензоколонок.

Входные данные: Даны два входных файла (файл A и файл B), каждый из которых в первой строке содержит два числа: N, K (1 ≤ N ≤ 10000 000  , 1 ≤ K ≤ 10000000  ) – соответственно количество бензоколонок на кольцевой автодороге и длина автодороги в километрах. В каждой из следующих 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))

Ответ: 138047 18483087239705

Ошибка.
Попробуйте повторить позже

Задача 6#87952

В городе 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]))


Ответ: 35840 65261338

Ошибка.
Попробуйте повторить позже

Задача 7#87951

В городе 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))

Ответ: 105136 21626571588

Ошибка.
Попробуйте повторить позже

Задача 8#87950

На каждом километре односторонней кольцевой автодороги расположены дачные участки. Администрация дачного поселения планирует построить теплицы и выращивать в них сельсхоз. продукцию на одном из участков. При этом рассаду для посева разрешается перевозить не менее чем на K километров, и не более чем на M километров. Известен необходимый суточный объём рассады, которую необходимо доставить грузовиком для определённого дачного участка. Гарантируется, что объём рассады не превышает грузоподъёмность грузовика. Стоимость доставки равна сумме расстояния от фабрики до участка и объёма необходимой рассады. Теплицы расположили на таком участке, что при этом общая стоимость доставок удобрений на все участки, находящиеся на удалении от K до M километров, максимальна.

Определите максимальную общую стоимость доставки удобрений из теплиц.

Входные данные

Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит три числа, разделённые пробелами: N (1 ≤ N ≤ 10000000)  – количество дачных участков, K и M – минимальное и максимальное расстояние для перевозки (1 ≤ K ≤ M  ≤ N − 1)  . В каждой из следующих 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))

Ответ: 41934 2464889

Ошибка.
Попробуйте повторить позже

Задача 9#87949

В городе 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)

Ответ: 70 559555

Ошибка.
Попробуйте повторить позже

Задача 10#87948

В городе 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))

Ответ: 91738 109292816488427549

Ошибка.
Попробуйте повторить позже

Задача 11#82956

На каждом километре односторонней кольцевой автодороги расположены дачные участки. Администрация дачного поселения планирует построить теплицы и выращивать в них сельсхоз. продукцию на одном из участков. При этом рассаду для посева разрешается перевозить не менее чем на K километров, и не более чем на M километров. Известен необходимый суточный объём рассады, которую необходимо доставить грузовиком для определённого дачного участка. Гарантируется, что объём рассады не превышает грузоподъёмность грузовика. Стоимость доставки равна сумме расстояния от фабрики до участка и объёма необходимой рассады. Теплицы расположили на таком участке, что при этом общая стоимость доставок удобрений на все участки, находящиеся на удалении от K до M километров, минимальна.

Определите минимальную общую стоимость доставки удобрений из теплиц.

Входные данные

Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит три числа, разделённые пробелами: N (1 ≤ N ≤ 10000000)  – количество дачных участков, K и M – минимальное и максимальное расстояние для перевозки (1 ≤ K ≤ M  ≤ N − 1)  . В каждой из следующих 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)

Ответ: 6404 56775869

Ошибка.
Попробуйте повторить позже

Задача 12#82955

Группа исследователей отправляется в экспедицию на необитаемый остров, имеющий форму окружности. У них есть ограниченное количество ресурсов, которые они могут нести с собой. Остров состоит из различных локаций, где возможно обнаружить ценные артефакты и природные ресурсы.

Исследователи могут начать свой путь с любой локации, сумма цифр индекса которого кратна 25 и двигаться по острову, собирая ресурсы. Действуют они по следующим правилам: в первой локации собирают треть всех ресурсов (при этом округление идет в большую сторону) и направляются к ближайшей следующей локации строго по часовой стрелке. Если там такая же четность ресурсов, как и в предыдущей локации, то исследователи снова берут треть ресурсов из текущей локации и идут к следующей локации. Если же четность ресурсов локации отличается, то исследователи берут четверть ресурсов из текущей локации и идут к следующей локации. Необходимо узнать с каким максимально возможным количеством ресурсов исследователи могут вернуться к той локации, с которой они начали.

Входные данные.

Входные данные

Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит одно число N (1 ≤ N ≤ 1000000)  количество локаций, а в последующих строках содержится количество ресурсов в каждой локации.

В ответе укажите два числа: сначала значение искомой величины для файла А, затем – для файла В.

Вложения к задаче
Показать ответ и решение
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)

Ответ: 6361 31637324

Ошибка.
Попробуйте повторить позже

Задача 13#82954

В городе 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))

Ответ: 49891200 15143518650650

Ошибка.
Попробуйте повторить позже

Задача 14#82239

Группа исследователей отправляется в экспедицию на необитаемый остров, имеющий форму окружности. У них есть ограниченное количество ресурсов, которые они могут нести с собой. Остров состоит из различных локаций, где возможно обнаружить ценные артефакты и природные ресурсы.

Исследователи могут начать свой путь с любой локации, у которого индекс меньше или равен 200, собирая ресурсы. Действуют они по следующим правилам: в первой локации собирают все ресурсы и направляются к ближайшей следующей локации строго по часовой стрелке. При достижении новой локации они сравнивают количество ресурсов в этой локации с количеством ресурсов, которые у них есть. Если количество ресурсов в локации хотя бы в четыре раза больше, чем у них, то они оставляют имеющиеся у них ресурсы в этой локации и забирают те, которые нашли и идут дальше. Если же количество ресурсов в локации в четыре или более раз меньше, чем у них, то исследователи выкидывают все свои ресурсы и начинают с нуля. Цель исследователей – узнать, с каким максимально возможным количеством ресурсов они могут вернуться к базовой локации, с которой они начали свою экспедицию.

Входные данные.

Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит одно число N (1 ≤ N ≤ 1000000)  количество локаций, а в последующих строках содержится количество ресурсов в каждой локации.

В ответе укажите два числа через пробел: сначала значение искомой величины для файла А, затем – для файла В.

Вложения к задаче
Показать ответ и решение
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)

Ответ: 965 4964

Ошибка.
Попробуйте повторить позже

Задача 15#82238

В клининговой компании есть N пунктов приёма собранного мусора после уборки. Все пункты расположены вдоль автомагистрали и имеют номера, соответствующие расстоянию от нулевой отметки до конкретного пункта. Известно количество мусора, которое ежедневно принимают в каждом из пунктов. Мусор перевозят в специальных транспортировочных контейнерах вместимостью V  3
m  . Каждый транспортировочный контейнер упаковывается в пункте приёма и вскрывается только в пункте сбора мусора. Компания планирует открыть пункт переработки мусора в одном из пунктов. Стоимость перевозки мусора равна произведению расстояния от пункта до лаборатории на количество контейнеров с мусором в квадрате. Общая стоимость перевозки за день равна сумме стоимостей перевозок из каждого пункта в пункт переработки.

Пункт переработки расположили в одном из пунктов приёма мусора таким образом, что общая стоимость доставки мусора из всех пунктов минимальна. Определите минимальную общую стоимость доставки мусора из всех пунктов приёма в пункт переработки.

Входные данные:

Даны два входных файла – A и B, каждый из которых содержит в первой строке число N (1 ≤ N ≤ 10000000)  – количество пунктов приёма мусора, и число V (1 ≤ V ≤ 1000)  – вместимость транспортировочного контейнера. Каждая из следующих 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)

Ответ: 3482751 426444605

Ошибка.
Попробуйте повторить позже

Задача 16#82237

В городе 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)

Ответ: 45 14148

Ошибка.
Попробуйте повторить позже

Задача 17#82236

В городе, на одной из кольцевых автодорог с двусторонним движением, расположены N многоэтажных жилых зданий для детских садов и школ. Длина кольцевой автодороги равна К км, при этом нулевой километр и K-й километр находятся в одной точке.

Дети ежедневно получают пончики, которые упакованы в доставочные пакеты, каждый из которых вмещает не более 300 штук. Каждый доставочный пакет используется для доставки пончиков только в одно здание, и в каждое здание может быть доставлен не более одного пакета с неполной загрузкой.

Склад для пончиков открыли в одном из зданий таким образом, чтобы количество доставляемых пакетов с пончиками было максимальным. Пончики в те здания, которые находятся на расстоянии более M километров от склада, не доставляются. Требуется определить необходимое количество доставочных пакетов на складе.

Входные данные:

Даны два входных файла: файл A и файл B, каждый из которых в первой строке содержит числа N, K и M (1 ≤ N ≤ 10000000,1 ≤ K ≤ 10000000,1 ≤ M  ≤ 10000000)  – количество зданий, длина кольцевой автодороги в километрах и максимальное расстояние, на которое можно осуществлять доставку пончиков. В каждой из следующих 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)

Ответ: 156 19271

Ошибка.
Попробуйте повторить позже

Задача 18#82235

На кольцевой автодороге с двусторонним движением находится N многоэтажных жилых домов (не более одного дома на каждом километре дороги). Длина кольцевой автодороги равна K км. Нулевой километр и K-й километр находятся в одной точке. Жители домов ежедневно заказывают доставку продуктов. Каждый магазин упаковывает продукты в пакеты, каждый из которых вмещает не более 158 кг. Каждый пакет используется для доставки почты только в один жилой дом, при этом для каждого дома берется минимально возможное количество пакетов. Известно, что курьеру хватает топлива не более чем на M км, заправка для обратного пути до магазина не учитывается. Магазин открыли в одном из домов таким образом, чтобы количество доставляемых пакетов с продуктами было максимальным.

Определите необходимое количество доставочных пакетов в этом магазине.

Входные данные

Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит три числа N, K и M число N (1 ≤ N ≤ 10000000,1 ≤ K ≤ 10000000,1 ≤ M ≤ 10000000)  -– количество жилых домов, длина кольцевой дороги в километрах и максимальное расстояние, на которое курьер может осуществлять доставку. В каждой из следующих 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)

Ответ: 236 19271

Ошибка.
Попробуйте повторить позже

Задача 19#82234

Почтальон Петя работает в маленьком городке, в котором все дома расположены вдоль одной круговой дороги. Петя может начать свой маршрут работы с любого дома, индекс которого кратен 150. Он собирает посылки из первого дома и направляется к следующему дому по часовой стрелке. Действует он по следующим правилам: в первом доме Петя забирает пятую часть всех посылок (если число не делится нацело на 5, то округляем в меньшую сторону) и направляется к ближайшему следующему дому по часовой стрелке. Если остаток от деления количества посылок на 5 такой же, как и в предыдущем доме, то Петя берет пятую часть посылок и идет к следующему дому. Если же остаток от деления количества посылок на 5 отличается, то Петя не берет посылки из текущего дома и идет к следующему. Необходимо узнать с каким максимально возможным количеством писем Петя может вернутся к тому дому, с которого он начал.

Входные данные.

Входные данные

Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит одно число N (1 ≤ N ≤ 1000000)  количество домов, а в последующих строках содержится количество посылок в каждом из домов.

В ответе укажите два числа через пробел: сначала значение искомой величины для файла А, затем – для файла В.

Вложения к задаче
Показать ответ и решение
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)

Ответ: 12254 3213362

Ошибка.
Попробуйте повторить позже

Задача 20#82233

Почтальон Петя работает в маленьком городке, в котором все дома расположены вдоль одной круговой дороги. Петя может начать свой маршрут работы с любого дома, индекс которого кратен 100. Он собирает посылки из первого дома и направляется к следующему дому по часовой стрелке. Прибыв в следующий дом, Петя сравнивает количество посылок в этом доме с количеством посылок, которые он несет с собой. Если количество посылок в доме равно или больше, чем у него, то Петя оставляет половину своих посылок в этом доме (если число получается нецелым, то округляется в меньшую сторону), берёт то количество посылок, что лежало в доме изначально и идет дальше. Если же количество посылок в доме меньше, чем у него, то Петя выкидывает все свои посылки и берет половину посылок из текущего дома (если число получается нецелым, то округляется в меньшую сторону). Цель Пети – узнать, с каким максимально возможным количеством посылок он может вернуться к дому, с которого он начал свой маршрут.

Входные данные.

Входные данные

Дано два входных файла (файл A и файл B), каждый из которых в первой строке содержит одно число N (1 ≤ N ≤ 1000000)  количество домов, а в последующих строках содержится количество посылок в каждом из домов.

В ответе укажите два числа через пробел: сначала значение искомой величины для файла А, затем – для файла В.

Вложения к задаче
Показать ответ и решение
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)

Ответ: 3874 5746
Рулетка
Вы можете получить скидку в рулетке!