[BOJ 1280] 나무 심기

View as PDF

Submit solution

Points: 4
Time limit: 2.0s
Memory limit: 128M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Pascal, Perl, Python, Sed, Text

1번부터 N번까지 번호가 매겨져 있는 N개의 나무가 있다. i번 나무는 좌표 X[i]에 심어질 것이다.</p>

동호는 나무를 1번 나무부터 차례대로 좌표 X[i]에 심으려고 한다. 1번 나무를 심는 비용은 없고, 각각의 나무를 심는데 드는 비용은 현재 심어져있는 모든 나무 까지 거리의 합이다. 만약 3번 나무를 심는다면, 1번 나무와의 거리 + 2번 나무와의 거리가 3번 나무를 심는데 드는 비용이다.

2번 나무부터 N번 나무까지를 심는 비용의 곱을 출력하는 프로그램을 작성하시오.

입력 형식

첫째 줄에 나무의 개수 N (2 ≤ N ≤ 200,000)이 주어진다. 둘째 줄부터 N개의 줄에 1번 나무의 좌표부터 차례대로 주어진다. 각각의 좌표는 200,000보다 작은 자연수 또는 0이다.

출력 형식

문제의 정답을 1,000,000,007로 나눈 나머지를 출력한다.

예제 입력 1

5
3
4
5
6
7

예제 출력 1

180

예제 입력 2

3
5
13
9

예제 출력 2

64

예제 입력 3

4
1
8
15
1

예제 출력 3

3087

예제 입력 4

10
4
59
94
89
4
59
94
89
4
59

예제 출력 4

591860767

예제 입력 5

5
199999
197532
99069
83762
14539

예제 출력 5

499739175

Comments

There are no comments at the moment.