f (num, first) = можно ли первые num групп рассадить так, чтобы в верхнем ряду занять first мест? f (num, first) = f (num - 1, first) OR f (num - 1, first - a[num - 1]) OR f (num - 1, first - a[num - 1] / 2), если a[num - 1] чётно