3-сторонний кубик
Как и каждую осень, организаторы Конкурса по Симуляции Кубиков Юго-Западной Европы снова заняты в этом году. В этом издании вам предстоит симулировать 3-гранный кубик, который выдает каждый из трех возможных результатов (обозначенных как 1, 2 и 3) с заданной вероятностью, используя три кубика из предоставленного набора. Симуляция выполняется следующим образом: вы случайным образом выбираете один из данных кубиков, бросаете его и сообщаете его результат. Вы можете свободно выбирать вероятности броска каждого из данных кубиков, при условии, что каждая вероятность строго больше нуля. Прежде чем раздать материалы участникам, организаторы должны убедиться, что эту задачу действительно можно решить.
Например, в первом тестовом случае из примера входных данных вам нужно симулировать кубик, который выдает результат 1, 2 и 3 с вероятностями , и . Мы даем вам три кубика, и в этом случае i-й из них всегда выдает результат i, для каждого i = 1, 2, 3. Тогда можно симулировать данный кубик следующим образом: бросать первый кубик с вероятностью , второй с вероятностью и последний с вероятностью .
Входные данные
Входные данные состоят из нескольких тестовых случаев, разделенных одной пустой строкой. Каждый тестовый случай состоит из четырех строк: первые три из них описывают три данных вам кубика, а последняя описывает кубик, который вы должны симулировать. Каждая из четырех строк содержит 3 целых числа, разделенных пробелами, от 0 до 10 000 включительно. Эти числа суммируются до 10 000 и представляют 10 000 раз вероятность того, что бросок кубика, описанного в этой строке, даст результат 1, 2 и 3 соответственно.
Тестовые случаи заканчиваются строкой, содержащей только число ноль, повторенное три раза (также предшествующей пустой строкой).
Выходные данные
Для каждого случая ваша программа должна вывести строку со словом 'YES', если возможно создать желаемый кубик из данных, и 'NO' в противном случае.