Картковий поєдинок Junior#4578

Картковий поєдинок Junior

1 секунда
256 мегабайтів
Середня

Двоє гравців грають у карткову гру. Кожен із гравців спочатку отримує певну кількість карт (нехай це будуть n_1 та n_2 відповідно). Кожного ходу обидва гравці одночасно вибирають і відкривають по одній карті зі своїх залишених карт. Слабша карта скидається, а сильнішу гравець повертає собі назад у руку. Якщо карти однакові за силою, обидві скидаються. Гра триває, поки у хоча б одного з гравців не закінчаться карти.

Якщо до кінця гри у одного з гравців залишилася хоча б одна карта, цей гравець отримує очко, а суперник — . Якщо ж у обох гравців закінчилися карти, кожен отримує по очка.

Всього існує типів карт. Відношення сили між ними може бути нетранзитивним і задано матрицею . A_{ij} дорівнює , якщо карта б’є карту , і в іншому випадку.

Потрібно знайти максимальний середній виграш першого гравця, якщо другий гравець застосовує рівномірну стратегію (тобто на кожному ході випадково обирає одну з наявних карт з однаковою ймовірністю).

Обмеження

1 \leq n_1, n_2, N \leq 8

A_{ij} + A_{ji} = 1 при i \neq j

A_{ii} = 0

Вхідні дані

У першому рядку задано число .

У наступних рядках міститься по чисел, що задають матрицю .

Далі рядок містить n_1, а потім n_1 чисел, кожне з яких визначає тип відповідної карти першого гравця.

В останньому рядку в аналогічному форматі наведено карти другого гравця.

Вихідні дані

Виведіть ціну гри для першого гравця з точністю не менше 10^{-8}.

Приклади

Приклад 1

Loading
Loading