Ни рыцарь, ни лжец не могут сказать: "Я лжец" (высказав подобное утверждение, рыцарь солгал бы, а лжец изрек бы истину). Следовательно, A, кем бы он ни был, не мог сказать о себе, что он лжец. Поэтому B, утверждая, будто A назвал себя лжецом, заведомо лгал. Значит, B - лжец. А так как C сказал, что B лгал, когда тот действительно лгал, то C изрек истину. Следовательно, C - рыцарь. Таким образом, B - лжец, а C - рыцарь. (Установить, кем был A, не представляется возможным.)