1) Они не могут быть все трое рыцарями, потому что тогда никто не сказал бы ни одной из этих фраз.
2) Они не могут быть все лжецами, потому что тогда фраза третьего "Все мы - лжецы" была бы правдой, а лжец не может сказать правду.
Значит, третий по-любому соврал. Он или лжец, или хитрец.
3) Если фраза первого - ложь, то среди них нет лжецов. Тогда первый не лжец, но он солгал. Значит, он хитрец и задача решена.
Если эта фраза - правда, то среди них есть как минимум один лжец.
4) Если фраза второго - ложь, то среди них можно выделить 2 не лжецов. Тогда второй солгал, он лжец или хитрец.
Если второй лжец, то первый сказал правду. Тогда первый рыцарь, а третий хитрец, иначе получается два лжеца, а мы доказали, что среди них есть как минимум два не лжеца.
В обоих случаях среди них есть хитрец. - или второй, или третий.
5) Если фраза второго - правда, то два лжеца - это первый и третий.
Но если там есть лжец, то первый сказал правду и не может быть лжецом.
Получили противоречие, значит, второй не мог сказать правду.
6) Третий по-любому соврал, как мы уже выяснили, поэтому все варианты исчерпаны.
В итоге мы в любом случае получаем хитреца.