Уважаемые подписчики, скоро начнётся очередная олимпиада шольников КОМП.
Несколько следующих рассылок будут посвящены задачам прошлой олимпиады.
Вы сможете оценить уровень и привлекательность задач.
Итак, задача первого тура.
Девятизначные быки и коровы
В "Быки и коровы" играют вдвоём. Первый игрок загадывает число, второй
игрок его отгадывает. Для уточнения числа второй записывает число, а
первый говорит, сколько в нем быков, а сколько коров. Такое уточнение
называется ходом. Быком называется цифра числа, которая стоит на том
же месте, что и в загаданном числе и совпадает с ним по значению.
Коровой называется цифра числа, которая есть в загаданном числе, но не
является быком.
Второй игрок записывает число. В ответ первый записывает, сколько в
этом числе быков и сколько коров.
Цель игры
Определить за наименьшее количество ходов загаданное число.
Варианты
Можно договариваться о разном количестве цифр в числе. Интересные
варианты начинаются с 4.
Задача
Написать программы для первого и для второго игрока отдельно. Цифры
будут десятичные от 0 до 9 и их количество в числе ровно 9. Цифры в
числе могут быть одинаковыми. Назовём программу для первого игрока
загадыватель, а для второго -- отгадыватель.
Техническое здание
Программы общаются через файл numbers.txt. Обе программы имеют право
только дописывать этот файл. Т.е. все предыдущие строки нужно
сохранять. В файле numbers.txt заполняется так:
В первой строке загадыватель записывает десятичное число из 20-ти
знаков. В нем закодировано загаданное число. В следующей строке
отгадыватель записывает девятизначное число (если нужно дополнив
незначащими нулями). В третьей строке загадыватель обязан написать
двухзначное число. Первая цифра -- количество быков, вторая цифра --
количество коров в числе, написанном в предыдущей строке.
Игра продолжается до момента пока загадывающий не напишет 90 (9 быков
0 коров). Время на ход -- 1 секунда. Если игра достигла 100 ходов,
отгадывающему записывается поражение.
Оценка задачи
Между программами будет устроен турнир. Можно получить до 100 баллов.
Блеф
Эта задача предполагает блеф. Загадывателю разрешается менять
загаданное число в во время игры, сообщать не верное количество быков
и коров или раскодировать число из первой строки. Но отгадыватель
может потребовать проверку. Для этого нужно записать не девятизначное
число, а -1. И если он окажется прав, то ему будет засчитан выигрыш за
1 ход. Если проверяющая программа не найдет обман, то отгадывателю
записывается проигрыш. Все остальные жульничества запрещаются и за них
программа может быть снята с соревнований.
Командный вариант
Эту задачу можно решать не только одному. Вы можете собрать команду до
4 человек. Команда более чем из одного человека получит поощрительные
очки. 2 человека -- 10 баллов, 3 человека -- 15 баллов, 4 человека --
20 баллов.
Автор задачи: В.В.Пупышев
Последний день решения задачи - 15 апреля 2002 года.
Последний день задавать вопросы по условию задачи - 10 апреля 2002 года