B calls A a liar so they must be of opposite types.
Then, since C refers to them as the same type, C must be a liar. So there's only one knight: either A or B.
A calls someone else a knight, so he must be a liar, leaving B to be the knight.
Since A was lying when he called someone a knight, he must have been talking about liar C. Therefore his calling C innocent must be a lie also, and C is guilty.
So B is the only knight and C is the guilty party.
Posted by Charlie
on 2007-04-10 10:52:36