using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { static int solve(int[] A) { var _temp = sample2(sample2(A)); var _ans = sum(_temp); var ans = _ans % (1000000007); return Convert.ToInt32(ans); } 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); } public static int[] sample2(int[] ar) { var b = new List(); for (int k = 0; k <= (ar.Length - 1); k++) { for (int i = 0; i <= (ar.Length - k - 1); i++) { int j = i + k; int max = max_subarray(ar, i, j); b.Add(max); } } return b.ToArray(); } public static ulong sum(int[] a) { ulong d = 0; foreach (var item in a) { d += Convert.ToUInt64(item); } return d; } public static int max_subarray(int[] ar, int i, int j) { int max = ar[i]; for (int m = i; m <= (j); m++) { if (max < ar[m]) { max = ar[m]; } } return max; } }