algospot   10달 전

논리는 다음과 같습니다.

먼저, 입력받는 수열의 0~N/2에서 합 S가 되는 것의 갯수(공집합 포함)을 구합니다. 구하는 동시에, 가능한 합을 기록합니다(트리에서 왼쪽(배제), 오른쪽(포함) 이라 생각했을때, 왼쪽으로 가는 경우는 기록하지 않습니다. 이유는 배제된다면 부모와 같고 그 것은 그 위의 조상에서 기록 됬을 것이기 때문입니다. 즉, 공집합은 배제됩니다.)

같은 방식으로 N/2+1~N-1까지 합 S가 되는 것의 갯수를 구합니다.

다음은 정렬을 한 후, [0~N/2] 에서 나올수있는 합의 집합(오름차순 정렬되어있음) [N/2+1~N-1]에서 나올수 있는 합의 집합을 while()문 안에서와 같이 동작하여 계산합니다. 

논리상 무엇이 틀렸는지 알려주세요~

댓글을 작성하려면 로그인해야 합니다.