Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- В этой задаче очень хочется написать формулу -- но надо не забывать, что при добавлении родителей у нас добавляется и общее количество людей. Напишем бинарный поиск по ответу -- бинарным поиском будем искать кол-во родителей, которых мы добавляем, и таким образом найдем наименьшее, которое мы можем добавить
- Определим, какие границы можно поставить в бинарный поиск: наименьшее кол-во родителей, которое нам потенциально придется добавить это 0 (если родителей уже треть). В качестве правой границы с запасом можем взять n -- если мы добавить n родителей к n людям, то родителей точно будет не меньше половины (значит и не меньше трети)
- Пример кода на python:
- n = int(input())
- k = int(input())
- l = -1 #не включительно
- r = n + 1
- while r - l > 1:
- m = (r + l) // 2
- if (k + m) * 3 >= n + m:
- r = m
- else:
- l = m
- print(r)
Advertisement
Add Comment
Please, Sign In to add comment