Ну вот. В зеленой точке интенсивность зеленого существенно больше интенсивности красного. Это не противоречит чернобелости.
Ну, в-общем, ясно, что с таким определением надо в любом случае проехать по всей картинке (одна точка третьего цвета в самом конце может всё испортить).
Давайте я свой вариант для начала напишу. Заводим две переменные типа "цвет"
,
и две переменные типа "целое число"
,
. Фиксируем точность сравнения цветов
. Читаем первую точку (N=1). Запоминаем ее цвет в
, и пишем
. Читаем (N+1)-ую точку. Если она имеет цвет
, и
отличается от
меньше, чем на
, то на место
кладем среднее значение цветов, попавших в
(то есть что-то типа
), и увеличиваем
на 1. Иначе: если
, то ответ: картинка не является черно-белой. А если
, то объявляем
,
. Если дошли до конца, то картинка является черно-белой.
Недостаток алгоритма --- не рассмотрен случай, когда в какой-то момент оказывается, что
и
отличаются меньше, чем на
.