Юноша с белой шляпой говорит Чернову. Фамилии цветам не соответствуют, значит у Чернова не чёрная. Остается один цвет - красный. Итог: у Чернова красная шляпа.
Остались 2 фамилии: Белов и Краснов. И два цвета: белый и чёрный. Юноша в белой шляпе - это Краснов. Значит Белов в чёрной.
Ответ: Белов - чёрная, Краснов - белая, Чернов - красная.