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

Заказ в магазине
Ограничение по времени: 0.5 секунды

Решив запастись ручками на весь новый учебный год, Игорь подсчитал, что ему нужно M ручек. В его любимом интернет‑магазине есть удобная функция — он может сразу добавить в заказ упаковку из любого числа ручек от 1 до N. Правда, оказалось, что нельзя добавить в заказ две упаковки одного размера. Например, если Игорю нужно купить M=12 ручек, а максимальное число ручек в упаковке N=10, то Игорь может добавить в заказ упаковку из 7 ручек и упаковку из 5 ручек, но не сможет добавить две упаковки из 6 ручек.
Сформируйте заказ на M ручек, используя минимальное число различных упаковок.

Формат входных данных
Первая строка входных данных содержит число N — максимальный размер одной упаковки (1≤N≤109).
Вторая строка входных данных содержит целое число M — необходимое количество ручек в заказе (1≤M≤109).

Ответы

Автор ответа: magisterobivan
1

Ответ:

n = int(input())

m = int(input())

if n > m:

  n = m

L = 0

R = n + 2

while R - L > 1:

  mid = (L + R) // 2

  if (mid + n) * (n - mid + 1) // 2 >= m:

     L = mid

  else:

     R = mid

if (L + n) * (n - L + 1) // 2 < m:

  print(0)

else:

  for i in range(R, n + 1):

     print(i)

  s = (R + n) * (n - R + 1) // 2

  if m - s > 0:

     print(m - s)

Объяснение:

Интересные вопросы
Предмет: Физкультура и спорт, автор: vadragd
1. Вращательным движением тела с последовательным касанием опоры без переворачивания
через голову в гимнастике обозначается как:
1) Кувырок вперед;
2) Перекат;
3) Переворот;
4) Нет правильного варианта ответа

2. Акробатическое упражнение, в основе которых лежит сохранение собственного равновесия
или уравновешивание одного или нескольких партнёров:
1) Шпагат;
2) Перекат;
3) Переворот;
4) Нет правильного варианта ответа
3. Акробатические прыжки это:
1) Опорные и безопорные перевороты;
2) Равновесия;
3) Мосты;
4) Нет правильного варианта ответа
4.Из положения лёжа на спине, руки вдоль туловища, ладони к полу, сгибаясь, поднять ноги, а
затем и таз от пола (опираясь на лопатки и затылок). Упереться руками в поясницу (большими
пальцами вперёд) и, направляя ноги вертикально вверх, разогнуться в тазобедренных суставах.
Какая это стойка:
1) Стойка на голове;
2) Стойка на лопатках;
3) Стойка на руках;
4) Нет правильного варианта ответа