좋은 배열 만들기

시간 제한1초메모리 제한512 MB

요약
배열에서 정확히 두 원소를 제거했을 때 남은 원소 중 하나가 나머지 합과 같아지는 제거 방법의 개수를 구합니다.
난이도

보통10점 중 6점

유형
배열, 해시맵, 수학
정답자
아직 제출이 없습니다

문제

어떤 원소 하나가 나머지 모든 원소의 합과 같으면 그 배열을 "좋은 배열"이라고 합니다. 예를 들어 배열 a=[1,2,3,6]a = [1, 2, 3, 6]은 1+2+3=61+2+3=6이므로 좋은 배열입니다.

길이가 NN인 배열 AA가 주어집니다. 정확히 두 원소를 제거한 뒤 남은 배열이 좋은 배열이 되도록 하는 제거 방법의 수를 구하세요.

예를 들어 a=[1,3,6,8,9]a = [1, 3, 6, 8, 9]에서 첫 번째 원소와 네 번째 원소를 제거하면 남은 배열은 [3,6,9][3, 6, 9]이고 3+6=93+6=9입니다. 두 번째 원소와 세 번째 원소를 제거하면 남은 배열은 [1,8,9][1, 8, 9]이고 1+8=91+8=9입니다. 따라서 가능한 방법은 2가지입니다.

입력

첫째 줄에 배열의 길이 NN이 주어집니다.

둘째 줄에 정수 A1,A2,⋯ ,ANA_1, A_2, \cdots, A_N이 공백으로 구분되어 주어집니다.

출력

정확히 두 원소를 제거해서 좋은 배열을 만들 수 있는 제거 방법의 수를 출력합니다.

제한

  • 5≤N≤500,0005 \le N \le 500,000
  • 1≤Ai≤1,000,0001 \le A_i \le 1,000,000
  • AiA_i는 정수입니다.
  • 합이 32비트 정수 범위를 넘을 수 있으므로 64비트 정수로 다루세요.

예제1

  1. 예제 1

    입력
    5
    1 3 6 8 9
    
    예상 출력
    2