Новая Школа - онлайн-школа подготовки к ЕГЭ
Задача Задача №85336
А
Аноним
05 декабря 2023 05:30 · публичный вопрос
А
Аноним

Имя входного файла: input.txt Имя выходного файла: output.txt Ограничения по времени: 2 секунды Ограничения памяти: 256 Мб Любит путешествовать на прочной машине. Он составил для себя карту маршрута из точки А в точку Б. Однако на дороге автомобиль нуждается в техническом обслуживании, чтобы свести к минимуму проблемы с шоссе, поэтому он выбрал маршрут с N пунктами обслуживания, расположенными один за другим. в точке номера i (1 ≤ N) стоимость обслуживания автомобиля равна Аі. Прочный может обходиться без обслуживания не более 3 пунктов подряд. В этом случае автомобиль должен пройти техническое обслуживание не менее 1 раза. Определите минимальную сумму, которую вы тратите на обслуживание автомобиля, когда едете по маршруту. Ввод формат данных Первый входной файл имеет значение N (1 ≤ N ≤ 1000) и значение AI в каждой из следующих N строк (положительное целое число не более 109). Формат выходных данных В единственной строке выходного файла указывается необходимая сумма денег, затрачиваемая на техническое обслуживание автомобиля. Пример входных и выходных данных Данные внедрения 7 3 4 5 10 3 12 8 Выходные данные 6 Туземцы. Уход за стойкостью должен производиться в пунктах 1 и 5.

Нейросеть05 декабря 2023 05:30

Алгоритм решения:

  1. Считываем число N из входного файла.
  2. Создаем пустой список costs для хранения стоимости обслуживания в каждом пункте обслуживания.
  3. Считываем N чисел из входного файла и добавляем их в список costs.
  4. Создаем переменную total_cost и устанавливаем ее равной 0.
  5. Создаем переменную consecutive без обслуживания равной 0.
  6. Проходим циклом по элементам списка costs:
  • Если значение элемента списка равно 0, то увеличиваем значение consecutive без обслуживания на 1.
  • Иначе, если значение consecutive без обслуживания больше 3, то добавляем в total_cost значение элемента списка.
  • Устанавливаем значение consecutive без обслуживания равным 0.
  1. Добавляем в total_cost значение последнего элемента списка costs (если consecutive без обслуживания больше 3).
  2. Записываем значение total_cost в выходной файл.

Python код решения:

with open('input.txt', 'r') as file:
    N = int(file.readline())
    costs = []
    for _ in range(N):
        cost = int(file.readline())
        costs.append(cost)

total_cost = 0
consecutive = 0
for cost in costs:
    if cost == 0:
        consecutive += 1
    else:
        if consecutive > 3:
            total_cost += cost
        consecutive = 0

total_cost += costs[-1] if consecutive > 3 else 0

with open('output.txt', 'w') as file:
    file.write(str(total_cost))

Примеры работы:

Входные данные (input.txt):

7
3
4
5
10
3
12
8

Выходные данные (output.txt):

6
Имя входного файла: input.txt Имя выходного файла: output.txt Ограничения по времени: 2 секунды Ограничения памяти: 256 Мб Любит путешествовать на прочной машине. Он составил для себя карту маршрута из точки А в точку Б. Однако на дороге автомобиль нуждается в техническом обслуживании, чтобы свести к минимуму проблемы с шоссе, поэтому он выбрал маршрут с N пунктами обслуживания, расположенными один за другим. в точке номера i (1 ≤ N) стоимость обслуживания автомобиля равна Аі. Прочный может обходиться без обслуживания не более 3 пунктов подряд. В этом случае автомобиль должен пройти техническое обслуживание не менее 1 раза. Определите минимальную сумму, которую вы тратите на обслуживание автомобиля, когда едете по маршруту. Ввод формат данных Первый входной файл имеет значение N (1 ≤ N ≤ 1000) и значение AI в каждой из следующих N строк (положительное целое число не более 109). Формат выходных данных В единственной строке выходного файла указывается необходимая сумма денег, затрачиваемая на техническое обслуживание автомобиля. Пример входных и выходных данных Данные внедрения 7 3 4 5 10 3 12 8 Выходные данные 6 Туземцы. Уход за стойкостью должен производиться в пунктах 1 и 5.
Алгоритм решения: 1. Считываем число N из входного файла. 2. Создаем пустой список costs для хранения стоимости обслуживания в каждом пункте обслуживания. 3. Считываем N чисел из входного файла и добавляем их в список costs. 4. Создаем переменную total_cost и устанавливаем ее равной 0. 5. Создаем переменную consecutive без обслуживания равной 0. 6. Проходим циклом по элементам списка costs: - Если значение элемента списка равно 0, то увеличиваем значение consecutive без обслуживания на 1. - Иначе, если значение consecutive без обслуживания больше 3, то добавляем в total_cost значение элемента списка. - Устанавливаем значение consecutive без обслуживания равным 0. 7. Добавляем в total_cost значение последнего элемента списка costs (если consecutive без обслуживания больше 3). 8. Записываем значение total_cost в выходной файл. Python код решения: ```python with open('input.txt', 'r') as file: N = int(file.readline()) costs = [] for _ in range(N): cost = int(file.readline()) costs.append(cost) total_cost = 0 consecutive = 0 for cost in costs: if cost == 0: consecutive += 1 else: if consecutive > 3: total_cost += cost consecutive = 0 total_cost += costs[-1] if consecutive > 3 else 0 with open('output.txt', 'w') as file: file.write(str(total_cost)) ``` Примеры работы: Входные данные (input.txt): ``` 7 3 4 5 10 3 12 8 ``` Выходные данные (output.txt): ``` 6 ```