1보다 큰 정수 세트를 가져 와서 X 라고합니다 . 우리는 정의 할 S (i)를 모든 구성원의 세트로 X에 의해 나누어 내가 I> 1 . 이러한 하위 집합에서 다음과 같은 집합 그룹을 선택하고 싶습니다.
그들의 조합은 세트 X
X의 요소 가 두 세트에 없습니다.
예를 들어 우리는 재편성 수 {3..11}
로
{3,4,5,6,7,8,9,10,11}
S(3): {3, 6, 9, }
S(4): { 4, 8, }
S(5): { 5, 10, }
S(7): { 7, }
S(11):{ 11}
이런 식으로 일부 세트를 표현할 수 없습니다. 우리가 가지고 예를 들어 {3..12}
, 12
도 3 및 4 모두에서 상호 배타적 인 우리 세트를 방지하는 배수이다.
일부 세트는 여러 방식으로 표현 {4..8}
될 수 있습니다. 예를 들어
{4,5,6,7,8}
S(4): {4, 8}
S(5): { 5, }
S(6): { 6, }
S(7): { 7, }
그러나 그것은 또한
{4,5,6,7,8}
S(2): {4, 6, 8}
S(5): { 5, }
S(7): { 7, }
직무
우리의 목표는 입력으로 세트를 가져 와서 이런 방식으로 커버하는 가장 적은 수의 서브셋을 출력하는 프로그램을 작성하는 것입니다. 아무것도 없으면 양의 정수 이외의 값을 출력해야합니다 (예 0
:).
이것은 코드 골프 질문이므로 바이트 수가 적을수록 답이 바이트로 표시됩니다.
테스트
{3..11} -> 5
{4..8} -> 3
{22,24,26,30} -> 1
{5} -> 1
[5..5]
? 같은 테스트 사례를 추가 할 수 있습니까? 우리는 같은 것을받을 수 있습니까 [8..4]
?
12
모두의 배수입니다 3
및 4
상호 배타적 인에서 우리의 세트를 방지 "왜? 문제 설명 12
에 두 하위 집합으로 이동 해야하는 다른 내용이 없습니다 .
[22,24,26,30]
의 배수입니다 2
. 이것을 삭제하고 샌드 박스로 만드는 것이 좋지 않을까요?