Loading [MathJax]/jax/output/SVG/jax.js

Республиканская олимпиада по информатике, 2012 год, 9 класс


(Быки и коровы)
Ограничение по времени:
2 секунды
Ограничение по памяти:
64 мегабайта

В этой задаче Вам предлагается сыграть в известную игру «Быки и коровы». Компьютер загадывает число из 4-х различных цифр от 1 до 9, а Ваша программа должна его отгадать с нескольких попыток. Попытка — это 4-значное число с неповторяющимися цифрами. В ответ на попытку Вашей программе будет даваться ответ в виде целого числа, равного 10X+Y, где X — количество цифр, угаданных на неправильных позициях, а Y — количество цифр, угаданных на верных позициях. Таким образом, в случае если программа правильно угадала загаданное число, код ответа будет равен 4. В этом случае программа должна завершиться. Учтите, что количество потраченных попыток будет учитываться при подсчете оценки за тест.
    Ваша программа должна делать попытки, вызывая функцию guess(x), параметром и результатом которой является целое число. Повторный вызов guess с аргументом, который ранее использовался, либо передача в качестве аргумента не 4-х значного числа, либо числа, содержащего одинаковые цифры, либо числа, содержащего цифру 0, считается ошибкой.
    Для правильной работы Вашей программы необходимо подключить библиотеку/модуль bullscows:
    C/C++: #include "bullscows.h"
    Pascal: uses bullscows;
    Функция объявлена следующим образом:
    C/C++: int guess(int x); Pascal: function guess(x : longint) : longint;
    Оценка будет происходить следующим образом. Пусть T — полный балл за тест, a R — балл, полученный программой. Если Ваша программа угадывает число не более чем за 7 попыток, то R=T, если больше чем за 7, то не больше, чем за 10, то R=0.75T, если больше чем за 10, но не больше, чем за 14, то R=0.5T, если больше чем за 14, но не больше, чем за 30, то R=0.25T. В остальных случаях R=0.
посмотреть в олимпиаде

Комментарий/решение: