Наверно так: Так как лжет только один, а показания В и С противоречат друг другу,то это кто-то из них. D указывает прямо на В,он не врет (потому что врет либо В либо С),значит лжет В.
Лжет B
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший