Ctrl K

Сколько матчей в олимпийке

Лёгкая
Турнир идёт по олимпийской системе: проигравший выбывает. В каждом раунде оставшиеся команды разбиваются на пары, и каждая пара играет один матч. Если команд нечётное число, одна из них проходит в следующий раунд без игры. Турнир заканчивается, когда остаётся одна команда. Дано число команд teams — верните, сколько всего матчей будет сыграно.
Пример 1
teams=6 → 5

Раунды: 6 команд → 3 матча, 3 команды → 1 матч и одна проходит без игры, 2 команды → финал. Всего 3 + 1 + 1 = 5.

Пример 2
teams=9 → 8

9 → 4 матча (5 команд дальше), 5 → 2 матча (3 дальше), 3 → 1 матч (2 дальше), финал. Всего 4 + 2 + 1 + 1 = 8.

Пример 3
teams=1 → 0

Команда одна — она сразу победитель, матчей нет.

Ограничения
  • 1 ≤ teams ≤ 10⁶
Встречал эту задачу на настоящем собесе?
Решили0
Пробовали0
Отправок0
Принято—
Темы
Похожие задачиСумма двоичных строк ЛёгкаяСвернуть число до одной цифры ЛёгкаяСчиталка тройками и пятёрками ЛёгкаяСложение длинных чисел в строках ЛёгкаяРаздача по кругу с ростом Лёгкая
загружаем Python…
Вход
teams=6
Ожидается
5

«Запустить» — первые 3 теста у тебя в браузере, «Отправить» — все 63 теста на сервере, включая скрытые.