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

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

CPU 벤치마킹

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

요약
정렬된 CPU 사이의 인접 비율이 주어질 때, 모든 쌍 (i<j)에 대해 i부터 j까지 비율의 곱을 구해 그 합을 1e9+7로 나눈 나머지를 출력한다.
난이도

보통10점 중 5점

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

문제

윤이는 Uni-COM에서 컴퓨터 부품을 판매하고 있다. 윤이는 다양한 성능의 CPU를 취급하는데, 손님들이 CPU의 성능을 손쉽게 비교할 수 있도록 벤치마크 표를 만들려고 한다.

모든 CPU 쌍을 직접 비교하는 일은 번거로우므로, 윤이는 CPU를 성능이 낮은 것부터 높은 것까지 정렬한 뒤 이웃한 CPU의 성능이 몇 배 차이가 나는지 측정했다. 그러면 다른 CPU 쌍의 성능 차이도 쉽게 계산할 수 있기 때문이다. 예컨대 CPU X,Y,ZX, Y, Z에 대해 XX가 YY보다 aa배 빠르고 YY가 ZZ보다 bb배 빠르다면 XX는 ZZ보다 abab배 빠르다는 사실을 알 수 있다.

윤이는 측정한 자료를 통해 모든 CPU 쌍의 성능 차이를 계산해서 벤치마크 표에 적었다. 구체적으로는, 1≤i<j≤N1\le i<j\le N을 만족하는 모든 순서쌍 (i,j)(i, j)에 대해 jj번째 CPU가 ii번째 CPU보다 몇 배 빠른지를 표에 적었다. 윤이가 표에 적은 수를 전부 더한 값을 계산하시오. 단, 계산 결과가 커질 수 있으므로 109+710^9+7으로 나눈 나머지를 출력한다.

입력

첫 번째 줄에 CPU의 개수 NN이 주어진다.

두 번째 줄에 N−1N-1개의 양의 정수 mim_i가 공백으로 구분되어 주어진다. i+1i+1번째 CPU의 성능이 ii번째 CPU의 성능의 mim_i배임을 의미한다.

출력

윤이가 벤치마크 표에 적은 수의 합을 109+710^9+7으로 나눈 나머지를 출력한다.

제한

  • 2≤N≤500,0002 \le N \le 500,000
  • 1≤mi<1091 \le m_i < 10^9

예제3

  1. 예제 1

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

    입력
    4
    2 2 4
    
    예상 출력
    36
    
  3. 예제 3

    입력
    5
    973408385 513124519 802361288 816371495
    
    예상 출력
    157603704