Ответ:

Число одноклассников, которые любят хотя бы один из двух жанров: \(12 + 18 - 3 = 27\). Троих, читающих оба жанра, при сложении посчитали дважды, поэтому вычитаем их один раз. Добавим одного ученика, который не читает ни тот, ни другой жанр: \(27 + 1 = 28\).

Ответ: 28 учеников.