B. Рога и копыта
Ограничения: время – 3s/6s, память – 32MiB Ввод: input.txt или стандартный ввод Вывод: output.txt или стандартный вывод
Послать решение Blockly Посылки Темы Где Обсудить (0)
В конторе "Рога и копыта", симулируя активную деятельность
по заготовке рогов и копыт, очень любили играть в следующую
разновидность "Быков и коров". Два игрока загадывают по одному
четырехзначному числу из цифр от 1 до 7. Пусть первый игрок
задумал число 3321. Другой игрок делает попытку угадать это
число, называя произвольное число, например 1223, и получает
ответ о числе точных и неточных попаданий, в данном случае
"1 рог и 2 копыта". Рог – это одинаковые цифры в одинаковых разрядах,
копыто – одинаковые цифры в разных разрядах, каждый разряд учитывается только один раз.
Затем пытается угадать число первый игрок, и так далее,
пока один из игроков не получит ответ "4 рога". Этот игрок
становится победителем.
Чемпионом конторы, без сомнения, был великий комбинатор.
Шура и Паниковский предложили Вам на выбор любую из половинок
"золотой гири" за программу, которая поможет им выиграть.
Программа должна:
- проанализировать числа-попытки игрока и полученные ответы;
- сообщить минимальное количество оставшихся попыток в самом неблагоприятном случае;
- предложить число, которое следует называть следующим для достижения указанного минимума ходов.
Т.е. если следовать советам программы, потребуется не более
указанного количества ходов и не существует ходов, которые
приводили бы к гарантированному выигрышу за меньшее количество
ходов.
Во входном файле содержится в первой строке количество
попыток `T` (`0\ ≤\ T\ ≤\ 10`), которое было сделано игроком. В
последующих `T` строках содержится число-попытка `N` (от 1111 до
7777) и количество обнаруженных рогов `R` (`0\ ≤\ R\ ≤\ 3`) и копыт `K`
(`0\ ≤\ K\ ≤\ 4`) в попытке (т.е. ответ противника; выполняется
условие `K+R\ ≤\ 4`) через один пробел.
В выходной файл вывести минимальное число оставшихся
попыток и рекомендуемое четырехзначное число-попытку через
один пробел. Если ответам противника не соответствует ни одно
число, вывести строчку с числом 0.
Пример ввода
6
7753 0 1
2374 0 2
6264 0 1
3323 1 0
2775 0 0
5212 1 0
Примечание: Количество попыток 1 означает, что на рекомендуемое
число-попытку последует ответ "4 рога".