Название: Кто злой - тех долой! Отправлено: fortpost от Май 12, 2015, 10:53:55 Император пригласил на праздник 2015 волшебников, некоторые из которых добрые, а остальные злые. Добрый волшебник всегда говорит правду, а злой может говорить что угодно. При этом волшебники знают, кто добрый и кто злой, а император нет. На празднике император задает каждому волшебнику (в каком хочет порядке) по вопросу, на которые можно ответить "да" или "нет". Опросив всех волшебников, император изгоняет одного. Изгнанный волшебник выходит в заколдованную дверь, и император узнает, добрый он был или злой. Затем император вновь задает каждому из оставшихся волшебников по вопросу, вновь одного изгоняет, и так далее, пока император не решит остановиться (он может это сделать после любого вопроса). Как император может изгнать всех злых волшебников, удалив при этом как можно меньше добрых?
Название: Re: Кто злой - тех долой! Отправлено: Tim от Май 12, 2015, 11:12:46 Нудно писать, но думаю максимум одним добрым придётся пожертвовать. Суть выделить одного честного. А дальше от него по кругу гонять вопрос - добрый ли следующий.
Название: Re: Кто злой - тех долой! Отправлено: fortpost от Май 12, 2015, 11:29:46 Нудно писать, но думаю максимум одним добрым придётся пожертвовать. Суть выделить одного честного. А дальше от него по кругу гонять вопрос - добрый ли следующий. В принципе так. Но интересно было бы на подробное решение глянуть.Название: Re: Кто злой - тех долой! Отправлено: zhekas от Май 12, 2015, 13:04:37 Цикл пока не найдём доброго
i = 1; Пока i-ый не скажет что последний добрый { i = i+1; } Если никто не сказал, что последний добрый Тогда последний злой. Помещаем его в заколдованную дверь; Иначе Помещаем i-го в заколдованную дверь; Если i-ый добрый Тогда последний добрый. Мы нашли доброго Иначе i-ый злой. Его не жалко. КонецЕсли КонецЕсли КонецЦикла |