using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static void Main(String[] args) { int n = Convert.ToInt32(Console.ReadLine()); string[] a_temp = Console.ReadLine().Split(' '); int[] a = Array.ConvertAll(a_temp,Int32.Parse); int result = Solve(a); Console.WriteLine(result); } private static int Solve(int[] iArr){ int[] iMaxArr = MaxTransform(MaxTransform(iArr)); return iMaxArr.Sum()%1000000007; } private static int[] MaxTransform(int[] iArr) { List lstTransform = new List(); for(int iOuter=0; iOuter<=iArr.Length-1; iOuter++) { for(int iInner=0; iInner <= iArr.Length - iOuter - 1; iInner++) { int iTransfromIndex = iInner + iOuter; int iGlobalMax = 0; while (iTransfromIndex >= iInner) { int iLocalMax = Math.Max(iArr[iInner], iArr[iTransfromIndex]); iGlobalMax = Math.Max(iGlobalMax, iLocalMax); iTransfromIndex--; } lstTransform.Add(iGlobalMax); } } return lstTransform.ToArray(); } }