Alice는 정수 배열을 이용한 놀이를 즐긴다.
길이가 n인 정수 배열 A에서 i번째 원소를 A[i]라 하자 (i=1,2,…,n). 부분배열 A[i,j]는 i번째 원소부터 j번째 원소까지를 포함하는 길이 (j−i+1)인 배열이다 (1≤i≤j≤n). 예를 들어 A=[1,3,5,7]이라면 A[1,2]는 [1,3]이고 A[2,4]는 [3,5,7]이다. A의 부분배열은 총 n×(n+1)/2개 있다.
Alice는 각 부분배열 A[i,j]의 점수 Score(i,j)를 다음 규칙으로 매긴다 (1≤i≤j≤n).
- [규칙 1] i=j이면 Score(i,j)=0이다.
- [규칙 2] i<j이고 A[i,j]의 원소 중 중복된 값이 있으면 Score(i,j)=0이다.
- [규칙 3] i<j이고 A[i,j]의 원소 중 중복된 값이 없으면 Score(i,j)=i(j−i+1)+j(j−i+1)이다.
예를 들어 A=[1,1,2]인 경우를 보자.
- 규칙 1에 따라 Score(1,1)=Score(2,2)=Score(3,3)=0이다.
- 규칙 2에 따라 Score(1,2)=Score(1,3)=0이다. 두 부분배열 모두 1을 두 번 이상 포함하기 때문이다.
- 규칙 3에 따라 Score(2,3)=22+32=13이다.
다른 예로 A=[1,3,5,7]인 경우를 보자. 원소가 하나인 부분배열은 모두 규칙 1에 따라 0이고, 규칙 2에 해당하는 부분배열은 없다. 길이가 2 이상인 부분배열의 점수는 다음과 같다.
- Score(1,2)=12+22=5
- Score(2,3)=22+32=13
- Score(3,4)=32+42=25
- Score(1,3)=13+33=28
- Score(2,4)=23+43=72
- Score(1,4)=14+44=257
정수 배열 A가 주어졌을 때, A의 모든 부분배열 점수의 합을 구하라.