For Geeks & Brainiacs #13- Cheryl's Birthday -

Albert and Bernard just became friends with Cheryl, and they want to know when her birthday is. Cheryl
gives them a list of 10 possible dates:
May 15 |
May 16 |
May 19 |
June 17 |
June 18 |
|
July 14 |
July 16 |
|
August 14 |
August 15 |
August 17 |
Cheryl then tells Albert and Bernard separately the month and the day of her birthday respectively.
She secretly tells Albert the month in which her birthday falls (i.e. May, June, July, or August) and she
secretly tells Bernard the day of her birthday (14, 15, 16, 17, 18, or 19).
Albert and Bernard then make the following statements:
Albert:
"I don't know when Cheryl's birthday is, but I know that Bernard does not know either."
Bernard:
"At first I didn't know when Cheryl's birthday was, but now I know."
Albert:
"Then I also know when Cheryl's birthday is."
So when is Cheryl's birthday?
(This clever logic puzzle was one of the questions on a Singapore and Asian Schools Math Olympiad that
went viral in April 2015.)
HINT: When Albert makes his first statement, some dates can be eliminated (i.e. if it were any of
those dates, Albert could not have made his statement with certainty). When Bernard makes his statement,
some dates can be eliminated from those that remain (i.e. if it were any of those dates, Albert could not
have made his statement with certainty). When Albert makes his second statement, of the remaining dates,
only one date is possible.
HINT 2: In the first step of the problem, you can eliminate all dates in May and June. If Cheryl
had told Albert the month was May, she may have told Bernard the day was 19 in which case Bernard would
know her birthday (there's only one birthday on the 19th). If Cheryl had told Albert the month was June,
she may have told Bernard the day was 18 in which case Bernard would know her birthday (there's only one
birthday on the 18th).
ANSWER:
July 16.
EXPLANATION: Each time Albert or Bernard make a statement, certain dates can be eliminated.
Following Albert's first statement, both Albert and Bernard know to eliminate all dates in May and June.
If Cheryl told Albert the month of her birthday was May, Albert could not say with certainty that Bernard
didn't know her birthday (if Cheryl told Bernard the day of her birthday was 19, Bernard would have known
her birthday was May 19 since it's the only date with the 19th). June can be eliminated the same
way (if Cheryl told Bernard the day of her birthday was 18, Bernard would have known her birthday was
June 18 since it's the only date with the 18th). So Cheryl's birthday has been narrowed down to July 14,
July 16, August 14, August 15, or August 17. Note that Bernard uses the same logic as Albert to eliminate
the dates in May and June.
Following Bernard's statement, Albert can eliminate July 14 and August 14, because if Cheryl had told
Bernard the day of her birthday was 14, Bernard would not have been able to say at this point that he
knew Cheryl's birthday (it could be either July 14 or August 14). Albert now knows that Cheryl's
birthday is either July 16, August 15, or August 17.
Following Albert's second/final statement, we can eliminate August 15 and August 17. If Cheryl had told
Albert the month of her birthday was August, he would not have been able to say at this point that he knew
Cheryl's birthday (it could be either August 15 or August 17). So Albert knows (and you do too) that
Cheryl's birthday is on July 16.
Do you have a
suggestion for this puzzle (e.g. something that should
be mentioned/clarified in the question or solution, bug, typo, etc.)?