С рыцарями все ясно - слева от них сидят лжецы, а справа хитрецы.
Рассмотрим лжеца. Он говорит:
1) Слева от меня лжец - и это ложь. Значит, двух лжецов рядом быть не может.
Слева от лжеца сидит или рыцарь, или хитрец.
Но, если слева от лжеца рыцарь, то справа от рыцаря - лжец.
А мы уже знаем, что справа от рыцаря сидит хитрец.
Значит, слева от лжеца сидит хитрец.
2) Справа от меня хитрец - и это тоже ложь.
Значит, справа от лжеца сидит рыцарь или лжец.
Но двух лжецов рядом быть не может, значит, справа от лжеца рыцарь.
Итак, получается такой порядок: хитрец-лжец-рыцарь-хитрец
Теперь рассмотрим всех 100 человек. Мы знаем, что там 50 хитрецов.
Если порядок будет такой: хитрец-лжец-рыцарь-хитрец-лжец-рыцарь-,
то хитрецов получится не больше трети, то есть 33-34 человека.
Если порядок такой: хитрец-лжец-рыцарь-хитрец-хитрец-лжец-рыцарь-хитрец-, то на каждых 2 хитрецов приходится 1 рыцарь и 1 лжец.
Тогда хитрецов будет ровно половина, 50, а рыцарей и лжецов по 25.
Ответ: 25 рыцарей и 25 лжецов.