М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
Рожочек11
Рожочек11
23.04.2020 18:14 •  Информатика

Задача 6: BoxStation Компания Microsony выпустила на рынок новую революционную игровую приставку BoxStation, и число желающих приобрести её огромно!

В день открытия продаж в магазин пришло N покупателей. Видя ажиотажный спрос, администрация договорилась, что в день открытия продаж в магазин поступят M приставок, и в последующие дни также будут подвозиться по M приставок ежедневно. Нераспроданные приставки остаются на складе в магазине и могут быть реализованы позже.

Однако спрос на приставки оказался столь велик, что на второй день в магазин за приставками пришли N + 1 покупателей, на третий день — N + 2 покупателей и далее в каждый день покупателей было ровно на 1 больше, чем в предыдущий день. Каждому покупателю отпускается одна приставка. Но контракт с поставщиками приставок уже заключён, поэтому несмотря на рост спроса в магазин всё равно ежедневно привозят только M новых приставок.

Определите, в какой день магазину не хватит приставок для того, чтобы удовлетворить запросы всех покупателей.

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

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

Система оценки
Решения, правильно работающие, когда входные числа не превосходят 100, будут оцениваться в

Пример
Ввод

Вывод

Пояснение

10
12

6

В первый день в магазин привезли 12 приставок, а пришло 10 покупателей, в конце дня в магазине осталось 2 приставки. На второй день привезли ещё 12 приставок, из них купили 11, поэтому в магазине осталось 2+12-11=3 приставки. На третий день привезли 12 приставок и пришло 12 покупателей, поэтому в магазине также осталось 3 приставки. На четвёртый день привезли 12 приставок, а купили 13, поэтому в магазине осталось 3+12-13=2 приставки. На пятый день привезли 12 приставок, а купили 14, поэтому в магазине не осталось ни одной приставки. Поэтому на шестой день магазин не сможет удовлетворить всех покупателей.

👇
Ответ:
polina1355
polina1355
23.04.2020

b = int(input())

a = int(input())

left = 0

right = 2 * 10 ** 9 + 1

while right - left > 1:

   mid = (left + right) // 2

   plus = a * mid

   minus = (b + b + mid - 1) * mid // 2

   if plus >= minus:

       left = mid

   else:

       right = mid

print(right)

Объяснение:

4,8(39 оценок)
Ответ:
dv1ne
dv1ne
23.04.2020

b = int(input())

a = int(input())

left = 0

right = 2 * 10 ** 9 + 1

while right - left > 1:

  mid = (left + right) // 2

  plus = a * mid

  minus = (b + b + mid - 1) * mid // 2

  if plus >= minus:

      left = mid

  else:

      right = mid

print(right)

Объяснение:

4,8(69 оценок)
Открыть все ответы
Ответ:
Soulwax
Soulwax
23.04.2020

program sorting;

const

 N = 10;

var

 v: array[1..N] of integer;

 d: integer;

 i, t: integer;  

 k: boolean;  

begin

 randomize;

 write('ДО сортировки:    ');

 for i := 1 to N do

 begin

   readln(v[i])

   write(v[i]:6);

 end;

}  

 d := N div 2;

 while(d > 0) do

 begin

   k := true;  

   while k do

   begin

     k := false;

     i := 1;

     for i := 1 to N - d do

     begin

       if(v[i] > v[i + d]) then

       begin

         t := v[i];

         v[i] := v[i + d];

         v[i + d] := t;

         k := true;

       end;

     end;

   end;    

   d := d div 2;

 end;

 writeln;

 write('ПОСЛЕ сортировки: ');

 for i := 1 to N do

   write(v[i]:6);

 writeln;

end.

4,6(35 оценок)
Ответ:
Ернай
Ернай
23.04.2020

#arr = [*map(int, input().split(' 0')[0].split())]  если числа вводятся в строчку , то раскомментируйте и используйте эту строку, а инициализацию массива arr и цикл while закомментируйте

arr = []

while 1:

   tmp = int(input())

   if tmp != 0:  # Читаем сколько угодно чисел пока не будет ноль

       arr.append(tmp)

   else:

       break

s = 0  # сумма двузначных чисел

k = 0  # количество двузначных чисел

for i in arr:

   if 10 <= i <= 99:  # итерируемся по циклу и если число двузначное

       s += i  # то прибавляем его к сумме

       k += 1  # счетчик двузначный чисел увеличиваем на один

print(s/k) if k > 0 else print('NO') #если количество двузначных > 0 то выводим среднее арифметическое s/k, если нет то выводим NO

4,4(24 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ