his130   6년 전

제 로직은

1.주어진 수열을 두개로 나눴습니다.

2.각각의 수열에 대해 makeAll 함수를 이용해서 부분집합의 합을 구합니다.(공집합을 제외하고)

3.두개의 합집합을 오름차순으로 정렬합니다.

4.하나의 합집합의 값을 A 라 하면 찾아야 하는 값은 s-A가 됩니다,

따라서 다른 합집합에서 s-A 값을 lower_bound 와 upper_bound 를 이용해 찾습니다.

5.그 갯수를 카운팅 합니다.

어느점에서 틀리는지 잘 모르겠습니다.

도와주세요!

ntopia   6년 전

접근 자체는 괜찮은 것 같은데요,

이렇게 하면

sum1 에서만 혹은 sum2 에서만  숫자를 골라서 S를 만드는 경우를

세지 못하게 됩니다.


반례를 들자면

6 3

1 1 1 -1 -1 -1

이 있겠네요.

his130   6년 전

감사합니다!

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