nq1s788

Управляющий совет

Oct 5th, 2025
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.37 KB | None | 0 0
  1. В этой задаче очень хочется написать формулу -- но надо не забывать, что при добавлении родителей у нас добавляется и общее количество людей. Напишем бинарный поиск по ответу -- бинарным поиском будем искать кол-во родителей, которых мы добавляем, и таким образом найдем наименьшее, которое мы можем добавить
  2.  
  3. Определим, какие границы можно поставить в бинарный поиск: наименьшее кол-во родителей, которое нам потенциально придется добавить это 0 (если родителей уже треть). В качестве правой границы с запасом можем взять n -- если мы добавить n родителей к n людям, то родителей точно будет не меньше половины (значит и не меньше трети)
  4.  
  5.  
  6. Пример кода на python:
  7. n = int(input())
  8. k = int(input())
  9. l = -1 #не включительно
  10. r = n + 1
  11. while r - l > 1:
  12.     m = (r + l) // 2
  13.     if (k + m) * 3 >= n + m:
  14.         r = m
  15.     else:
  16.         l = m
  17. print(r)
Advertisement
Add Comment
Please, Sign In to add comment