입력 문자열은 STDIN을 통해 가져옵니다. assets
아내 (또는 쌍둥이) 사이에 분배 될 양을 나타냅니다. length
자산 수입니다.
본 목적을 위해 자산은 1에서 20까지의 정수로 구성되어 있다고 가정합니다.
@The Constructor는 아내 2가 아내 1이 모든 최고의 자산을 가지고 있다는 사실에 이의를 제기 할 수 있다고 지적합니다. 따라서 다음은 아내 1에 대한 모든 "공정"(차이 = 최저 차이) 주식을 생성합니다. 아내 2는 남은 자산을 얻는다. 0은 아내의 자산 차이를 나타냅니다. 가중치가 1에서 20까지 인 자산을 분배하는 방법은 5448 가지입니다. 몇 줄만 표시됩니다.
{{{1,2,3,4,5,16,17,18,19,20}, 0}, {{1,2,3,4,6,15,17,18,19,20}, 0}, {{1,2,3,4,7,14,17,18,19,20}, 0}, {{1,2,3,4,7,15,16,18,19,20 }, 0}, {{1,2,3,4,8,13,17,18,19,20}, 0}, {{1,2,3,4,8,14,16,18,19 , 20}, 0}, {{1,2,3,4,8,15,16,17,19,20}, 0}, {{1,2,3,4,9,12,17,18 , 19,20}, 0}, {{1,2,3,4,9,13,16,18,19,20}, 0}, {{1,2,3,4,9,14,15 , 18,19,20}, 0}, {{1,2,3,4,9,14,16,17,19,20}, 0}, {{1,2,3,4,9,15 , 16,17,18,20}, 0}, {{1,2,3,4,10,11,17,18,19,20}, 0}, {{1,2,3,4,10 , 12,16,18,19,20}, 0}, << 5420 >>, {{5,6,7,8,9,11,13,14,15,17}, 0}, {{5 , 6,7,8,9,12,13,14,15,16}, 0}, {{5,6,7,8,10,11,12,13,14,19}, 0}, { {5,6,7,8,10,11,12,13,15,18}, 0}, {{5,6,7,8,10,11,12,13,16,17}, 0} , {{5,6,7,8,10,11,12,14,15,17}, 0}, {{5,6,7,8,10,11,13,14,15,16}, 0}, {{5,6,7,9,10,11,12,13,14,18}, 0}, {{5,6,7,9,10,11,12,13,15,17 }, 0}, {{5,6,7,9,10,11,12,14,15,16}, 0}, {{5,6,8,9,10,11,12,13,14 , 17}, 0}, {{5,6,8,9,10,11,12,13,15,16}, 0}, {{5,7,8,9,10,11,12,13,14,16}, 0}, {{6,7,8,9,10,11,12,13,14,15}, 0}}
5448
사전 제출물은 편집 내용 중에서 찾을 수 있습니다. 에 비해 훨씬 비효율적입니다 Permutations
.
1 1 1 1 1 5
의 경우 정답은1 1 1
|1 1 5
하면서1 1 1 1 1
|5
더 이해가 될 것입니다.