Помощь с олимпиадой

Начинающий
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
4
Реакции[?]
0
Поинты[?]
0
Задача 2: Пирожки
Рядом с домом Пети расположена пекарня, в которой пекут вкусные пирожки с ягодами. Пете очень нравятся три вида пирожков: с брусникой, с черникой и с вишней. Пирожок с брусникой стоит A рублей, пирожок с черникой стоит B рублей, пирожок с вишней стоит C рублей.

Каждый день, проходя мимо пекарни, Петя покупает пирожок одного из этих трёх видов. При этом он соблюдает следующие правила:

  • если в некоторый день он купил пирожок с брусникой, то на следующий день он купит пирожок с черникой;
  • если в некоторый день он купил пирожок с черникой, то на следующий день он купит пирожок с вишней;
  • если в некоторый день он купил пирожок с вишней, то на следующий день он купит пирожок с брусникой.
Например, если сегодня Петя купит пирожок с брусникой, то завтра он купит пирожок с черникой, послезавтра — пирожок с вишней, на следующий за послезавтра день — пирожок с брусникой, и так далее.

Зная, какой пирожок Петя купит сегодня, определите, сколько денег Петя потратит на пирожки в течение N дней, начиная с сегодняшнего.

Входные данные
В первой строке входных данных содержится целое число A (1 ≤ A ≤ 106) — цена пирожка с брусникой.

Во второй строке содержится целое число B (1 ≤ B ≤ 106) — цена пирожка с черникой.

В третьей строке содержится целое число C (1 ≤ C ≤ 106) — цена пирожка с вишней.

В четвёртой строке содержится целое число N (2 ≤ N ≤ 2×109) — количество дней, за которые нужно посчитать расходы Пети на пирожки.

В пятой строке содержится число 1, 2 или 3, указывающее, какой пирожок Петя купит сегодня. Число 1 соответствует пирожку с брусникой, число 2 — пирожку с черникой, число 3 — пирожку с вишней.

Выходные данные
Выведите единственное целое число — сумму, которую Петя потратит на пирожки.

Обратите внимание, что для больших значений N ответ может быть больше, чем возможное значение 32-битной целочисленной переменной, поэтому необходимо использовать 64-битные числа (тип int64 в языке Pascal, тип long long в C и C++, тип long в Java и C#).

Система оценки
Решение, правильно работающее только для случаев, когда n ≤ 3, будет оцениваться в 9 баллов.

Решение, правильно работающее только для случаев, когда n ≤ 1000, будет оцениваться в 72 балла.

Примеры
ВводВыводПояснение
14
12
11
7
1
88Во всех примерах цены пирожков и количество дней, в течение которых нужно посчитать расходы Пети на пирожки, одни и те же.
В первом примере первой покупкой Пети будет пирожок с брусникой. Значит, покупки Пети за семь дней могут быть описаны последовательностью брусника, черника, вишня, брусника, черника, вишня, брусника. Сумма, потраченная на покупки, составит 14 + 12 + 11 + 14 + 12 + 11 + 14 = 88 рублей.
14
12
11
7
2
86Во втором примере первой покупкой Пети будет пирожок с черникой. Соответственно, покупки Пети за семь дней могут быть описаны последовательностью черника, вишня, брусника, черника, вишня, брусника, черника. Сумма, потраченная на покупки, составит 12 + 11 + 14 + 12 + 11 + 14 + 12 = 86 рублей.
14
12
11
7
3
85В третьем примере первой покупкой Пети будет пирожок с вишней. Следовательно, покупки Пети за семь дней могут быть описаны последовательностью вишня, брусника, черника, вишня, брусника, черника, вишня. Сумма, потраченная на покупки, составит 11 + 14 + 12 + 11 + 14 + 12 + 11 = 85 рублей.
 
Новичок
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
1
Реакции[?]
0
Поинты[?]
0
a=int(input())
b=int(input())
c=int(input())
n=int(input())
k=int(input())
d=n//3
s=d*(a+b+c)
if k==1:
if n%3==1:
s+=a
elif n%3==2:
s+=a
s+=b
if k==2:
if n%3==1:
s+=b
elif n%3==2:
s+=b
s+=c
if k==3:
if n%3==1:
s+=c
elif n%3==2:
s+=c
s+=a
print(s)
На питоне
 
Сверху Снизу