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

Новичок
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Ответ на 2 задачу:

Python3
На 100 баллов.

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)
 
Новичок
Статус
Оффлайн
Регистрация
28 Окт 2021
Сообщения
1
Реакции[?]
0
Поинты[?]
0
Привет, задачу решил:
Python:
n, result = int(input()), int(input())
spis = list(range(1, n + 1))
while spis != [result]:
    index = spis.index(result) + 1
    if index % 2 != 0:
        spis = list(filter(lambda x: spis.index(x) % 2 == 0, spis))
        print(2)
    else:
        spis = list(filter(lambda x: spis.index(x) % 2 != 0, spis))
        print(1)
Но она не может работать с большими числами(до 1000000000), зависает, можно это как-то поправить?
Что нужно изменить в программе, чтобы не было такой ошибки?

====== Тест #1 =======
--- Входные данные: размер 5 ---
10
5

--- Результат работы: размер 185 ---
Введите начальное количество чисел на доске: Введите число, которое должно остаться в конце игры: 2
2
1

--- Правильный ответ: размер 6 ---
2
2
1

--- Поток ошибок: размер 0 ---

--- Вывод проверяющей программы: размер 127 ---

вывод программы: [1]: ошибка конвертации в 64-битное целое (int64) значение

====== Тест #2 =======
--- Входные данные: размер 4 ---
6
6

--- Результат работы: размер 185 ---
Введите начальное количество чисел на доске: Введите число, которое должно остаться в конце игры: 1
2
1

--- Правильный ответ: размер 6 ---
1
2
1

--- Поток ошибок: размер 0 ---

--- Вывод проверяющей программы: размер 127 ---

вывод программы: [1]: ошибка конвертации в 64-битное целое (int64) значение
 
Сверху Снизу