아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

좋은 수

면접 대비

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

요약
수열에서 자기 앞에 있는 세 수의 합으로 표현되는 원소가 몇 개인지 센다. 같은 원소를 여러 번 골라도 된다.
난이도

보통10점 중 5점

유형
해시맵, 완전 탐색, 배열, 구현
정답자
아직 제출이 없습니다

문제

정수 NN개로 이루어진 수열 A=A1,A2,…,ANA = A_1, A_2, \dots, A_N이 있다.

수열의 ii번째 수 AiA_i가, 자신보다 앞에 있는 수(A1,…,Ai−1A_1, \dots, A_{i-1}) 중에서 세 개를 골라 더한 값과 같으면 그 수를 좋은 수라고 한다. 이때 같은 수를 여러 번 골라도 된다. 즉, Ai=Aj+Ak+AlA_i = A_j + A_k + A_l을 만족하는 위치 j,k,lj, k, l (1≤j,k,l≤i−11 \le j, k, l \le i-1, 서로 같아도 된다)이 존재하면 AiA_i는 좋은 수이다.

수열이 주어졌을 때, 좋은 수가 모두 몇 개인지 구하여라.

입력

첫째 줄에 수열 AA의 크기 NN이 주어진다. (1≤N≤50001 \le N \le 5000)

둘째 줄에 수열 AA의 각 원소가 공백으로 구분되어 주어진다. (−100,000≤Ai≤100,000-100{,}000 \le A_i \le 100{,}000)

출력

첫째 줄에 좋은 수의 개수를 출력한다.

예제3

  1. 예제 1

    입력
    2
    1 3
    
    예상 출력
    1
    
  2. 예제 2

    입력
    6
    1 2 3 5 7 10
    
    예상 출력
    4
    
  3. 예제 3

    입력
    3
    -1 2 0
    
    예상 출력
    1