Задача 3. Урок ИЗО

Автор:Завгороднев А.А.   Ограничение времени:1 сек
Входной файл:Стандартный вход   Ограничение памяти:256 Мб
Выходной файл:Стандартный выход  
Максимальный балл:100  

Условие

Петя пришел в на урок изобразительного искусства. Там ему выдали 3 100-миллилитровых банки с красками разных цветов. Цвет краски задается 3 целыми числами r, g и b- ее насыщенностью красного, зеленого и синего соответственно. Учительница задала Пете смешать краски так, чтобы получить 100мл краски цвета rx, gx, bx.

Краски смешиваются следующим образом:

Пусть есть a1 миллилитров краски цвета r1, g1, b1 и a2 миллилитров краски цвета r2, g2, b2. Тогда новая краска будет иметь объем a1 + a2 мл, а ее красный цвет будет вычисляться по формуле a1 r1 + a2 r2a1 + a2. Зеленый и синий цвета вычисляются аналогично.

Вам надо помочь Пете и сказать сколько миллилитров каждой краски надо взять, чтобы получить нужный цвет. В ответе выведите целую часть объемов красок. Если искомую краску получить невозможно, выведите -1.

Формат входных данных

В первой строчке располагаются 3 целых числа - r1, g1, b1 - цвета первой краски.

Во второй - r2, g2, b2 - цвета второй краски

В третьей - r3, g3, b3 - цвета четвертой краски

В последней строчке располагаются три целых числа rx, gx, bx - цвет результирующей краски.

Формат выходных данных

Выведите 3 целых числа - целые части количества миллилитров первой, второй и третьей красок соответственно. Если искомую краску получить невозможно, выведите -1.

Ограничения

Все числа целые и неотрицательные.

r1 + g1 + b1 = 255

r2 + g2 + b2 = 255

r3 + g3 + b3 = 255

rx + gx + bx = 255

Система оценки и описание подзадач

Баллы за подзадачи начисляются только в случае, если все тесты для этой подзадачи и необходимых подзадач успешно пройдены.

Подзадача Баллы Дополнительные ограничения Необходимые подзадачи Информация о проверке
140 Краски, из которых надо составлять новый цвет чистые, то есть у вас есть банки красной (255, 0, 0), зеленой(0, 255, 0) и синей (0, 0, 255) красок. полная
260 Без ограничений 1полная

Примеры тестов

Стандартный вход Стандартный выход
1
255 0 0
0 255 0
0 0 255
100 55 100
39 21 39
2
255 0 0
0 255 0
0 0 255
255 0 0
100 0 0
3
55 100 100
100 55 100
100 100 55
80 80 95
44 44 11

4
55 100 100
100 55 100
100 100 55
80 60 115
-1

Разбор

Подзадача 1

Надо сначала определить какая из красок красная, зеленая, а какая синяя. И тогда надо будет взять rx100255 красной, gx100255 зеленой и bx100255 синей красок.

Полное решение

Способ 1

Введем неизвестные x1, x2, x3 - количество первой, второй и третьей красок. Тогда в результирующей краске будет красный цвет интенсивности r1 x1 + r2 x2 + r3 xrx1 + x2 + x3. И тогда запишем равенство r1 x1 + r2 x2 + r3 xrx1 + x2 + x3 = rx. По условию x1 + x2 + x3 = 100, поэтому знаменатель можно отбросить, и просто в конце ответ умножить на 100. Если проделать тоже самое с зеленым и синим цветами, то получим в итоге систему из 3х уравнений с 3мя неизвестными, которую можно решить на листочке, учитывая в коде, что вы не делите на 0.

Способ 2

Можно заметить, что возможные значения x1 - от 0 до 100 включительно, то есть всего 101 возможное значение. Аналогично у x2 и x3 всего 101 возможных значений. Тогда можно в трех вложенных циклах перебрать все x1, x2 и x3, проверяя, что x1 + x2 + x3 ≤ 100 и при смешивании получается нужный цвет.


0.315s 0.011s 13