Язык PASCALABC Чемпионат по шашкам Ограничение времени 1 секунда Ограничение памяти 64Mb...

0 голосов
42 просмотров

Язык PASCALABC
Чемпионат по шашкам
Ограничение времени
1 секунда
Ограничение памяти
64Mb
Ввод
стандартный ввод или input.txt
Вывод
стандартный вывод или output.txt

Чемпионат Берляндии по стодвадцатиодноклеточным шашкам среди школьников планируется провести по «нокаут-системе», то есть после каждой партии проигравший прекращает выступление в чемпионате, а победитель проходит дальше (по правилам стодвадцатиодноклеточных шашек ничьи невозможны). После того, как остаётся один участник, турнир завершается и оставшийся участник объявляется чемпионом.
Напишите программу, которая вычисляет, какое наименьшее количество партий потребуется провести для того, чтобы определить победителя, если в соревновании приняло участие N школьников.
Формат ввода
На вход подаётся одно целое число N (2 ≤ N ≤ 106) — количество школьников, принявших участие в чемпионате.
Формат вывода
Ваша программа должна вывести одно целое число — наименьшее количество партий, которое потребуется сыграть для определения победителя.
Пример
Ввод
Вывод
3
2
Примечания
Решением к данной задаче является программа, написанная на одном из представленных в системе языков программирования. Программа должна считывать данные со стандартного потока ввода (иначе говоря, «с клавиатуры») и выводить ответ в стандартный вывод (иначе говоря, «на экран»).
Выводить лишние символы (исключая пробелы и переводы строк) недопустимо, то есть если вместо ответа будет выведен ответ и после него (или перед ним) какое-то лишнее число или строка, то система ответ не зачтёт.


Информатика (1.1k баллов) | 42 просмотров
Дано ответов: 2
0 голосов
Правильный ответ

//PascalABC

var n: integer;
begin
read(n);
write(n - 1)
end.

=====================================================
Понятно, что с каждой сыгранной партией прекращает свое участие ровно один игрок. Победитель определен, когда из n остается только 1 участник. Значит (n - 1) участников прекратили свое участие. А это возможно, только если было сыграно также (n - 1) партия.

(13.3k баллов)
0 голосов

Begin
write (readinteger-1);
end.

(3.8k баллов)
0

Эм?

0

Я сомневаюсь, что этого достаточно

0

А вы проверьте!

0

Благодарю

0

//FPC 2.6.4
var i, n: integer;
begin
i:=0;
readln (n);
repeat
i:=i+(n div 2);
n:=n-(n div 2);until n=1;

write (i);
end.