meet-in-the-middle

2 задачи
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Беси учится управлять роботом, который она недавно получила в подарок.

Робот начинает в точке \((0, 0)\) координатной плоскости и Беси хочет привести робота в точку \((x_g, y_g)\). Изначально у Беси есть список из \(N\) (\(1\le N\le 40\)) инструкций для робота, \(i\)-ая из которых перемещает робота на \(x_i\) единиц вправо и на \(y_i\) единиц вверх (или влево и вниз, если \(x_i\) и \(y_i\) отрицательные, соответственно).

Для каждого \(K\) от \(1\) to \(N\), вычислите количество способов, которыми Беси может выбрать \(K\) инструкций из исходного списка так, что после применения этих \(K\) инструкций, робот окажется в точке \((x_g, y_g)\).

**Замечание: лимиты на время и память в этой задаче увеличены вдвое до 4s и 512MB, относительно значений по умолчанию.**

ФОРМАТ ВВОДА (с клавиатуры / stdin):

Первая строка содержит \(N\). Следующая строка содержит \(x_g\) и \(y_g\), каждое в интервале \(-10^9 \ldots 10^9\). Последующие \(N\) описывают инструкции. Каждая строка содержит два целых числа \(x_i\) и \(y_i\), также в интервале \(-10^9 \ldots 10^9\).

Гарантируется, что \((x_g,y_g)\neq (0,0)\) и \((x_i,y_i)\neq (0,0)\) для всех \(i\).

ФОРМАТ ВЫВОДА (на экран / stdout):

Выведите \(N\) строк, количество способов, которыми Беси может выбрать \(K\) инструкций из списка оригинальных \(N\), для каждого \(K\) от \(1\) до \(N\).


У Фермера Джона есть N cows (2 <= N <= 20), и корова I производит M(i) единиц молока ежедневно (1 <= M(i) <= 100,000,000). ФД хочет рационализировать процесс ежедневной дойки коров, поэтому он установил новый доильный аппарат в амбаре. Есть одно НО – аппарат работает, только если коровы на левой стороне амбара имеют такое же общее количество молока, как и коровы на правой стороне амбара.
Назовем подмножество коров «сбалансированным», если оно может быть разбито на две группы, имеющие равные суммарные надои молока.
ФД хочет, чтобы Вы посчитали, сколько подмножеств из его N коров сбалансированы.
PROBLEM NAME: subsets
Формат входных данных
* Строка 1: Целое N.
* Строки 2..1+N: Строка i+1 содержит M(i).
Формат выходных данных
* Строка 1: Количество сбалансированных подмножеств коров.
Примечание
Подмножество {1,2,3} может быть разбито на {1,2} и {3}. Подмножество {1,3,4} может быть разбито на {1,3} и {4}. Подмножество {1,2,3,4} может быть разбито на {1,4} и {2,3}.
Поделиться
Класснуть