만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

피보나치 부분수열

면접 대비

시간 제한2초메모리 제한1024 MB

요약
주어진 n개의 수를 재배열해 각 항이 앞의 두 항의 합이 되는 피보나치 수열을 만들 수 있는지 판별합니다.
난이도

보통10점 중 5점

유형
해시맵, 시뮬레이션, 정렬
정답자
아직 제출이 없습니다

문제

오늘 학교에서 크리스토퍼는 수열과 순열을 배웠다. 그는 피보나치 수열을 특히 좋아했다. 수열 a1,a2,…a_1, a_2, \ldots은 모든 i>2i > 2에 대해 ai=ai−1+ai−2a_i = a_{i-1} + a_{i-2}가 성립하면 피보나치 수열이다.

저녁에 크리스토퍼는 토끼의 집을 방문했다. 토끼의 책상 위에는 숫자가 적힌 카드 묶음이 있었다. 크리스토퍼는 이 카드의 숫자들로 피보나치 수열을 만들 수 있는지 궁금했다.

입력

입력 파일의 첫 줄에 자연수 nn이 주어진다. nn은 수열의 원소 개수이며 1≤n≤1001 \le n \le 100이다. 둘째 줄에는 10910^9보다 작은 자연수 nn개가 주어진다.

출력

숫자로 피보나치 수열을 만들 수 있으면 <<YES>>를, 그렇지 않으면 <<NO>>를 따옴표 없이 출력한다.

예제2

  1. 예제 1

    입력
    3
    5 8 3
    
    예상 출력
    YES
    
  2. 예제 2

    입력
    3
    5 6 7
    
    예상 출력
    NO