Пусть А сказал: «Б — лжец или я — рыцарь».
Б сказал: «А — рыцарь».
Если Б — рыцарь, то А — рыцарь. Тогда утверждение А должно быть правдой. То есть либо Б лжец, либо А рыцарь. Поскольку А рыцарь, то утверждение А истинно. Все сходится.
Если Б — лжец, то А — лжец. Тогда утверждение А должно быть ложным. То есть Б — не лжец, и А — не рыцарь. Это противоречие, так как Б — лжец, а А — лжец.
Ответ: А — рыцарь, Б — рыцарь.