Сразу скажу - Полного решения у меня нет.
Я думаю, что сначала нужно определить, какая фраза означает "да", а какая "нет".
Для этого нужно задать такой вопрос, на который и лжец и правдолюб ответят "да".
Например, задаём вопрос любому:
Если бы я спросил, холодно ли зимой, ты бы ответил "да" ?
Если он говорит правду, то он ответит, как на прямой вопрос "Холодно ли зимой?", то есть ответит "Да".
Если же он врет, то на прямой вопрос он ответил бы "Нет", а тут он подумает:
"Я бы ответил нет, значит, надо сказать наоборот", и тоже ответит "Да".
Таким образом, мы узнаем, какая из фраз "Надо подумать" и "Зависит от ситуации" означает "Да", а какая "Нет".
Второй вопрос нужно задать так, чтобы понять, говорит ли он правду.
Например, спросить напрямую: Сейчас день?
Очевидно, что дело происходит днем, и мы точно знаем, что правильный ответ "Да".
Если же он ответит фразой, которая означает "Нет", то он врет.
А вот третий вопрос для меня остаётся загадкой.
Возможно, что в самом вопросе нужно как-то зашифровать факт, что он - правдолюб, или что он лжец.