Предмет: Информатика, автор: shushablinchik

Помогите пожалуйста
В одном правительственном здании установили инновационный лифт. Известно, что здание имеет как наземные этажи, нумерующиеся 1, 2, ..., так и подземные этажи, нумерующиеся -1, -2, .... Лифт изначально находится на нулевом этаже, а этаж, на который нужно подняться, кодируется нажатием на кнопки "A" и "B". Нажатие на кнопку "A" прибавляет к текущему запрошенному этажу некоторое фиксированное число (обозначим его A), а нажатие на кнопку "B" умножает текущий запрошенный этаж на некоторое другое фиксированное число (обозначим его B). При этом требуется, чтобы выбор этажа выполнялся за минимальное число нажатий, иначе лифт никуда не поедет.

Значения A и B могут быть как положительными, так и отрицательными, но не равны 0.

Например, пусть нам требуется попасть на 9 этаж, а значение A равно 1, а B равно 2. Тогда необходимо последовательно нажать на кнопки A, B, B, B, A: (0+1)*2*2*2+1.

Формат входных данных
На вход поступает число N (0 < N < 1000) — число запросов, затем целое число A (-1000 < A < 1000, A ≠ 0), затем целое число B (-1000 < B < 1000, B ≠ 0), затем N целых чисел X (-1000 < X < 1000, X ≠ 0) — запрашиваемый этаж.

Запросы не зависят друг друга, то есть каждый раз лифт едет с нулевого этажа.

Формат результата
Если заданное число получить невозможно, выведите 0. В противном случае выведите последовательность минимальной длины из символов A и B, где A означает операцию сложения с A, а B — умножения на B, которая позволяет получить заданное число из начального значения 0. Каждый символ выводите на отдельной строке. Если подходящих последовательностей несколько, выведите любую.

Ответы

Автор ответа: XDXDXDXDXDXDXO
0

Код на Python:
def find_operations(N, A, B, X):

   result = []

   for target in X:

       operations = []

       current = 0

       while current != target:

           if current + A == target:

               operations.append('A')

               current += A

           elif (target - current) % B == 0:

               operations.append('B')

               current *= B

           else:

               operations.append('A')

               current += A

       result.append(operations)

   return result

# Зчитуємо вхідні дані

N = int(input())

A = int(input())

B = int(input())

X = list(map(int, input().split()))

# Знаходимо послідовності операцій

sequences = find_operations(N, A, B, X)

# Виводимо результат

for sequence in sequences:

   print('\n'.join(sequence))

Интересные вопросы
Предмет: Українська мова, автор: violkafi1528
Підготуйте статтю «Булінг – це духовна та фізична слабкість чи демонстрування сили?» для молодіжної газети. Уявіть, що читачами будуть ваші ровесники. Напишіть так, щоб ваші однолітки задумалися над тими морально-етичними питаннями, які ви поставите; доберіть переконливі аргументи на підтвердження своїх тверджень.

Скористайтесь підказками та поясненнями:

Структура тексту у статті має бути такою:

заголовок – коротке, лаконічне, інформативне речення;
вступ –2-3 речення про зміст і цілі статті (не більше 10% усього тексту);
головна частина – розглянута в логічній послідовності суть досліджуваного питання (близько 80% тексту);
висновок – кілька речень, у яких автор підводить підсумок досліджуваного питання (не менше 10% загального тексту).
Правила написання статті

1. Правильний заголовок. Заголовок повинен привернути увагу читача і змусити його читати текст далі, не покидаючи сторінку. Саме по заголовку читач визначає, чи варто йому читати статтю і чи отримає він корисну (або цікаву) інформацію.

2.Вступ: утримує увагу читача і сприяє продовженню читання. Повинен містити інформацію про головну думку і короткий виклад її змісту.

3. Виклад основного тексту статті або безпосередньо подробиці, які зацікавлять читача. При написанні основного тексту слід суворо дотримуватися теми та головних принципів:

лаконічність;
грамотність;
аргументованість.
4. Статтю потрібно писати простими реченнями – так інформація є більш доступною читачеві для розуміння чи запам’ятовування.

5. Потрібно поділяти текст на абзаци. Для зручного читання слід використовувати не більше 5-10 речень в одному абзаці.

6. Щоб слідкувати за темою, використовуйте план, де перераховані два-три переконливі аргументи для головної частини, і кілька фраз для переконливого висновку.

7. Дотримуємося логічної послідовності. Важливо плавно робити перехід від одного абзацу до іншого, не втрачаючи при цьому основної думки та не забуваючи про акценти, які привертають увагу до необхідних моментів.

8. При написанні статті слід дотримуватись літературної мови і стилю, уникаючи народних висловів та жаргонів, якщо того не вимагає аудиторія або стиль статті.

9. Намагайтеся при викладенні тексту уникати слів, значення яких може бути незрозуміле читачеві.

10. Не варто зловживати сполучниками «але», «і», «а» на початку речення.

11. Обов’язково перевіряйте текст на наявність орфографічних та пунктуаційних помилок.

12. Висновок статті повинен бути її логічним завершенням та містити ключові позиції статті, які читач може взяти за інформативну основу.
Хееееееелп​