Областная олимпиада по информатике 2001/2002 г.

Тур I, Задача 4. "Обработка изображения". 40 баллов.

Некий графический редактор работает с попиксельно заданными изображениями. Каждый пиксел представлен тремя числами (r,g,b), задающими интенсивности трех цветовых составляющих: красной, зеленой и синей. Эти числа целые, принимают значения от 0 до 255.

Редактор позволяет выполнять всего три вида операций. Каждая операция выполняется попиксельно, то есть одни и те же преобразования применяются к каждому пикселу изображения. Операции следующие:

  1. Изменение цвета изображения. Операция записывается в виде rn, gn или bn и означает увеличение интенсивности соответствующей цветовой составляющей за счет двух других на величину до 2n. Точная формула преобразованных значений пиксела (r,g,b) , которую использует редактор, для случая команды rn: (r+min(g,n)+min(b,n), g-min(g,n), b-min(b,n)), для остальных команд - аналогично.
  2. Изменение насыщенности цветов. Операция записывается в виде sn. Формула для пиксела (r,g,b): обозначим p = , q = , преобразованные значения запишутся: (p + (r-p)×q, p + (g-p)×q, p + (b-p)×q).
  3. Изменение яркости изображения. Операция записывается в виде ln (латинская буква "эль" и число n следом за ней). Формула для пиксела (r,g,b): обозначим q = , преобразованные значения запишутся: (r×q,g×q,b×q).

Во всех этих операциях n - целое число от -100 до 100. Между буквой, задающей операцию, и числом n пробел не ставится. Операции выполняются в вещественных числах, результат округляется. Если в результате операции значение одной из составляющих получается больше 255, берется значение 255, если меньше 0 - берется значение 0.
Пример INPUT.TXT:OUTPUT.TXT для примера:
4
255 0 0
0 0 255
0 0 255
255 0 0
100 100 100
100 100 100
100 100 100
100 100 100
2
s-100
l18