SOLUTION

Les jours peuvent être 14, 15, 16, 17, 18 ou 19.
Les mois peuvent être mai, juin, juillet ou août.
1ère étape:
Le 18 et le 19 n'apparaissent qu'une seule fois. 18 pour le mois de juin ou 19 pour le mois de mai. On peut donc éliminer les mois de mai et de juin car la connaissance de l'un des éléments entraîne la connaissance de l'autre. Donc l'anniversaire de Cheryl est en juillet ou août.
2e étape:
14 peut correspondre à juillet et à août. Donc Bernard ne pourrait pas savoir.
3e étape:
Et il ne reste que trois possibilités le 16 juillet, le 15 août et le 17 août. Bernard connaît le mois. Si cela avait été en août, il n'aurait pas pu savoir si c'était le 15 ou le 17.

Donc Cheryl est née le 16 juillet.

Vérification:
Cheryl avait donné à Bernard le jour (16) et à Albert le mois (juillet)
Donc Bernard a le choix entre le 16 mai et le 16 juillet. Il élimine la mauvaise date dès la fin de la première étape.
Donc Albert a le choix entre le 14 juillet et le 16 juillet. Il doit attendre la 3e étape

Trouver l'algorithme de résolution ne peut se faire sans une solide compréhension de la notion du temps qui passe, les repères spatio-temporels.