만드는 중입니다

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

말레피센트 합

면접 대비

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

요약
음이 아닌 정수 n개가 주어졌을 때, 인덱스 i < j < k인 모든 세 원소 곱 a_i * a_j * a_k의 합을 1000000007로 나눈 나머지를 구합니다.
난이도

보통10점 중 4점

유형
누적 합, 수학, 배열
정답자
아직 제출이 없습니다

문제

말레피센트는 저주, 주문, 그 밖의 마법 물건이 또다시 뒤엉켜 버리자, 며칠에 걸쳐 풀기보다 모두 한꺼번에 해제하고 필요한 대상에게만 저주를 다시 걸기로 했다.

각 저주는 음이 아닌 정수로 나타낼 수 있다. i번째 저주에 대응하는 수를 a_i라 하자. 모든 저주를 한 번에 해제하려면 다음 값을 구해야 한다.

∑1≤i<j<k≤nai⋅aj⋅ak\sum_{1 \le i < j < k \le n} a_i \cdot a_j \cdot a_k

그녀가 이 값을 빨리 구하도록 도와주자. 값이 매우 커질 수 있으므로 1 000 000 0071\,000\,000\,007로 나눈 나머지를 구한다.

입력

첫째 줄에 저주의 개수 nn이 주어진다 (3≤n≤1063 \le n \le 10^6).

둘째 줄에는 각 저주에 대응하는 정수 a1,a2,…,ana_1, a_2, \ldots, a_n이 주어진다 (0≤ai≤1060 \le a_i \le 10^6).

출력

구한 값을 1 000 000 0071\,000\,000\,007로 나눈 나머지를 출력한다.

예제2

  1. 예제 1

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

    입력
    4
    0 5 6 7
    
    예상 출력
    210