지우개
시간 제한1초메모리 제한256 MB
서로 다른 위치에서 값이 모두 다른 세 수를 고르는 모든 경우의 곱을 합한 값을 1,000,000,007로 나눈 나머지를 구합니다.
문제
승현이는 남이 지우개를 훼손할까 걱정되어 지우개를 직접 만들기로 했다.
승현이는 자연수로 이루어진 수열 을 하나 정한다. 이 수열에서 서로 다른 세 위치의 원소 , , 를 골라 가로, 세로, 높이가 각각 그 값인 직육면체 지우개를 만들고, 이를 지우개라고 부른다. 단 승현이는 위로 길쭉한 지우개를 좋아하므로 를 만족해야 한다.

위 그림을 살펴보자. 승현이가 정한 수열을 , , , 라고 하자. 지우개는 이 성립하지 않으므로 만들 수 없다. 반면 지우개는 이 성립하므로 만들 수 있다. 이 수열에서 만들 수 있는 지우개는 지우개와 지우개뿐이다.
승현이는 만들 수 있는 지우개의 부피를 모두 더하면 얼마인지 궁금해졌다. 지우개의 부피는 가로, 세로, 높이의 곱이다. 지우개를 쌓아 둘 창고를 설계하려면 이 값이 필요하니, 승현이를 도와주자.
입력
첫째 줄에 수열의 길이 이 주어진다. ()
둘째 줄에 이 공백으로 구분되어 차례대로 주어진다. ()
출력
첫째 줄에 만들 수 있는 모든 지우개의 부피의 합을 출력한다. 승현이는 프로그램이 제대로 도는지부터 확인하고 싶어 하므로, ()로 나눈 나머지를 출력한다.
힌트
수열이 , , , 인 경우를 보자. 만들 수 있는 지우개는 지우개와 지우개뿐이므로, 부피의 합은 이다.