문제 링크
- http://icpc.me/2143
문제 출처
- 2001 전국 본선 고등부1
사용 알고리즘
- 이진 탐색
시간복잡도
- O(N2logN2)
풀이
A 배열의 모든 부 배열의 합과, B배열의 모든 부 배열의 합을 먼저 구해줍시다.
A와 B의 prefix sum을 구해놓았다면, O(N2)만에 각각의 부배열의 합을 모두 구할 수 있습니다. 그 배열을 각각 aa, bb라고 합시다.
만약 aa의 어떤 원소 i가 bb의 어떤 원소 j의 합이 t가 되기 위해서는, i+j=t를 만족해야 합니다. 당연하게도, j=t-i를 만족하겠죠.
aa의 원소 i가 있을 때, bb에 있는 t-i값의 개수의 합이 정답이 되겠네요.
aa와 bb를 정렬해준 다음에, aa의 모든 원소 i에 대해 bb에서 t-i의 개수를 구해줍시다.
전체 코드
1 |
|