Top.Mail.Ru

Пусть общее количество детей в очереди равно N. Если деть сам посчитал, что перед ним стоит k детей, то он думает, что за ним стоят N – k – 1 детей.

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

Для каждого ребенка i (от 1 до n) проверим, есть ли такой номер j (от 1 до N), что деть j утверждает, что перед ним стоит ровно i детей. Если таких номеров j несколько или нет ни одного, то ошибка в подсчете для детя i. Также проверим, есть ли такой номер k (от 1 до N), что деть k утверждает, что за ним стоит ровно i детей. Если таких номеров k несколько или нет ни одного, то ошибка в подсчете для детя i.

Теперь посчитаем количество ошибочных ответов. Если для детя i имеется единственный номер j или k, подсчитывающий количество детей перед ним или за ним, то ответ для этого ребенка верный. Иначе, если для детя i имеется несколько или нет ни одного номера j или k, ошибка в подсчете соответственно перед или после этого ребенка.

Таким образом, минимальное возможное число детей, сделавших ошибку, будет равно сумме количества детей с несколько или без номеров j и k, деленной на 2.

Шаги решения:
1. Проверка каждого ребенка, есть ли такие номера j и k, удовлетворяющие его ответам о количестве детей перед ним и за ним.
2. Подсчет количества детей с несколько или без номеров j и k.
3. Деление полученной суммы на 2, чтобы найти минимальное возможное число детей, сделавших ошибку при подсчете.

   
[metform form_id="1136"]