eolymp
bolt
Попробуйте наш новый интерфейс для отправки задач
Задачи

Смешивание цветов

Смешивание цветов

Фрэнк живет в Лондоне, и он очень любит игры и математику. В последнее время он играет в игру на своем мобильном телефоне. Она довольно проста: имеется последовательность цветных фигурок и за каждый ход игрок должен объединить пару соседних фигур для получения новой определенного цвета. Этот процесс повторяется до тех пор пока вся последовательность не приведет к единственной конечной фигурке. Проблема в том, что не каждая пара цветов может объединяться. Существует набор правил, описывающий разрешенные комбинации. Например, пусть заданы следующие правила \textbf{blue + yellow → green} \textbf{yellow + red → orange} \textbf{blue + orange → brown} и последовательность (\textbf{blue}, \textbf{yellow}, \textbf{red}). Игра может закончиться коричневой фигуркой через два шага: (\textbf{blue},\textbf{ yellow}, \textbf{red}) \textbf{→} (\textbf{blue}, \textbf{orange}) \textbf{→} (\textbf{brown}). Сейчас Фрэнк в Валенсии на знаменитом конкурсе по программированию, он как раз ждет трамвая, чтобы добраться в университет. Между тем, он играет в эту игру, чтобы скоротать время. Солнце светит так ярко, что он не может должным образом видеть экран своего телефона. У Фрэнка имеется некоторая определенность в отношении возможного цвета каждой фигурки, и он задается вопросом, какой будет результирующий цвет после наиболее вероятного сценария игры в результате оценки входной последовательности. Имеется оценка Фрэнком двух цветов \textbf{A} и \textbf{B}, и комбинация \textbf{A + B → C}, вероятность получить цвет \textbf{C} составляет \textbf{cer(C)} = \textbf{cer(A)} · \textbf{cer(B)}. \InputFile Первая строка содержит количество правил \textbf{r }(\textbf{0 }< \textbf{r }≤ \textbf{100}), задающих возможные комбинации цветов. Каждая из следующих \textbf{r }строк содержит три строки \textbf{s_1}, \textbf{s_2}, \textbf{s_3} описывающих комбинацию \textbf{s_1 + s_2 → s_3}. Следующая строка задает количество тестов \textbf{t}. Для каждого теста задается длина \textbf{c }(\textbf{0 }< \textbf{c }≤ \textbf{500}) входной последовательности фигурок. Каждая из следующих \textbf{c }строк описывает фигурку, содержит список пар (\textbf{k}, \textbf{cer(k)}) задающий цвет \textbf{k }и соответствующую вероятность (\textbf{0} < \textbf{cer(k)} ≤ \textbf{1.0}). Список завершается словом \textbf{END}. Сумма вероятностей для каждой фигурки всегда составляет \textbf{1.0}. Каждый цвет в тестах сначала встречается в правилах, описывающих игру. \OutputFile Для каждого теста вывести цвет, с которым наиболее вероятно закончить игру. Если завершить игру невозможно, вывести \textbf{GAMEOVER}. \textbf{Объяснения к примерам} \textit{\textbf{Первый тест}} В первом тесте всего две фигурки. Фрэнк уверен, что вторая фигурка \textbf{Yellow}, но первой может быть \textbf{Red} или \textbf{Orange}. Имеются два возможных решения игры: 1. \textbf{(Red; Yellow) → (Orange) :} \textbf{cer(Orange)} = \textbf{0.7} 2. \textbf{(Orange; Yellow) → (Yellow) :} \textbf{cer(Yellow)} = \textbf{0.3} По оценкам Фрэнка более вероятно окончание \textbf{1}, поэтому финальный цвет \textbf{Orange}. \textit{\textbf{Второй тест}} Во втором тесте имеются несколько фигурок и оценок. Два возможных решения: 1. \textbf{(Blue,Yellow,Yellow,Red) → (Blue,Yellow,Orange) → (Blue,Yellow) → (Green)} \textbf{cer(Green) = 0.006} 2. \textbf{(Green,Red,White,Black) → (Green,Pink,Black) → (Green,Red) → (Yellow)} \textbf{cer(Yellow) = 0.036} По оценкам Фрэнка более вероятно окончание \textbf{2}, поэтому финальный цвет \textbf{Yellow}. \textit{\textbf{Третий тест}} Фрэнк уверен, что у него имеются две фигурки \textbf{Blue} и \textbf{Orange}. Не существует правила, по которому их можно скомбинировать, поэтому игра не имеет решения.
Лимит времени 10 секунд
Лимит использования памяти 64 MiB
Входные данные #1
7
Blue Yellow Green
Yellow Red Orange
Green Red Yellow
White Red Pink
Pink Black Red
Orange Red Red
Yellow Orange Yellow
3
2
Red 0.7 Orange 0.3 END
Yellow 1.0 END
4
Blue 0.6 Green 0.4 END
Red 0.2 Orange 0.6 Yellow 0.2 END
White 0.9 Yellow 0.1 END
Red 0.5 Black 0.5 END
2
Blue 1.0 END
Orange 1.0 END
Выходные данные #1
Orange
Yellow
GAMEOVER
Источник 2013 ACM Southwestern Europe Regional Contest (SWERC), November 17