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

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

Задача 1#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

Специальные программы

Все специальные программы

Программа
лояльности v2.0

Приглашай друзей в Школково и получай вознаграждение до 10%!

Крути рулетку
и выигрывай призы!

Крути рулетку и покупай курсы со скидкой, которая привязывается к вашему аккаунту.

Бесплатное обучение
в Школково

Для детей ДНР, ЛНР, Херсонской, Запорожской, Белгородской, Брянской областей, а также школьникам, находящимся в пунктах временного размещения Крыма обучение на платформе бесплатное.

Налоговые вычеты

Узнай, как получить налоговый вычет при оплате обучения в «Школково».

Специальное предложение
для учителей

Бесплатный доступ к любому курсу подготовки к ЕГЭ или олимпиадам от «Школково». Мы с вами делаем общее и важное дело, а потому для нас очень значимо быть чем-то полезными для учителей по всей России!

Вернём деньги за курс
за твою сотку на ЕГЭ

Сдать экзамен на сотку и получить обратно деньги за подготовку теперь вполне реально!

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