Тут главное обратить внимание на диалог и проанализировать его.
Так как Альберт знает месяц, его цель - донести до Бернарда номер месяца.
Так как Бернард знает число, его цель - донести до Альберта номер числа. (сейчас поймете что я имею ввиду).
И так, у нас есть 4 месяца и числа в каждом из месяцев (порядок чисел играет главную роль):
Май - 5 месяц, имеет 3 числа - 15, 16 и 19.
Июнь - 6 месяц, имеет 2 числа - 17 и 18.
Июль - 7 месяц, имеет 2 числа - 14 и 16.
Август - 8 месяц, имеет 3 числа - 14, 15 и 17.
В первом своем диалоге, Альберт должен передать номер месяца. Как это он сделает? Сейчас увидим:
Альберт: Я не знаю, когда у Шерил день рождения, но я знаю, что Бернард тоже не знает.
Считаем данные слова и получаем что их ровно 8. То есть, Альберт передал номер месяца и он 8. То есть месяц дня рождения - Август.
Бернард зная теперь и месяц, должен передать Альберту день, как это он сделает? Сейчас увидим:
Бернард: Поначалу я не знал, когда у Шерил день рождения, но знаю теперь.
Считаем данные слова и получаем что их ровно 3. То есть, нам нужно 3 число из предложенных в Августе. Понятное дело что это 17 число.
Следовательно, день рождения Шерил 17 августа.