I recently start reading books on games theory, logic in order gain working knowledge in olympiad style logic question. I stumble upon this little puzzle, but I couldn't wrestle it down and couldn't beat it. I wonder what your strategy is to tackle such a question as this:
Alice and Charlie just became friends with Dottie, and they want to know Dottie's birthday. Dottie then 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
Dottie then tells Alice and Charlie separately the month and the day of her birthday respectively.
Alice: I don't know when Dottie's birthday is, but I know that Charlie does not know too.
Charlie: At first I don't know when Dottie's birthday is, but I know now.
Alice: Then I also know when Dottie's birthday is.
Question: When is Dottie's birthday ?
Statement 1 means that there must be 2 possible months for every date in the real month. This is because if there was one possible month to any date, Charlie would know the answer because he would know both the date and the month. So, we can eliminate any month with a date that is not repeated in another month. We can eliminate May because 19 is not repeated and June because 18 is not repeated. Now, statement 2 tells us that in this new set of possible dates, Charlie can tell which is the real one. This means that we can eliminate all days that are in both months, which is July and August 14th. Statement 3 tells us that Alice now knows Dottie's birthday, so there must be only one date in a month for her to be able to know. This means that the date of Dottie's birthday is July 16th.